[debian-edu-commits] debian-edu/ 10/50: Imported Upstream version 1.0f-2

Unit 193 unit193-guest at moszumanska.debian.org
Wed Dec 21 05:05:48 UTC 2016


This is an automated email from the git hooks/post-receive script.

unit193-guest pushed a commit to branch master
in repository veracrypt.

commit 1c532ade15deecd0f07eb42c6e94ecabad9728e8
Author: Unit 193 <unit193 at ubuntu.com>
Date:   Mon Apr 6 16:41:17 2015 -0400

    Imported Upstream version 1.0f-2
---
 Translations/Language.ar.xml                     |  13 +-
 Translations/Language.be.xml                     |  13 +-
 Translations/Language.bg.xml                     |  13 +-
 Translations/Language.ca.xml                     |  13 +-
 Translations/Language.cs.xml                     |  13 +-
 Translations/Language.da.xml                     |  13 +-
 Translations/Language.de.xml                     |  47 +-
 Translations/Language.el.xml                     |  13 +-
 Translations/Language.es.xml                     |  13 +-
 Translations/Language.et.xml                     |  13 +-
 Translations/Language.eu.xml                     |  13 +-
 Translations/Language.fa.xml                     |  13 +-
 Translations/Language.fi.xml                     |  13 +-
 Translations/Language.fr.xml                     | 717 ++++++++--------
 Translations/Language.hu.xml                     |  15 +-
 Translations/Language.id.xml                     |  13 +-
 Translations/Language.it.xml                     |  13 +-
 Translations/Language.ja.xml                     |  13 +-
 Translations/Language.ka.xml                     |  13 +-
 Translations/Language.ko.xml                     |  13 +-
 Translations/Language.lv.xml                     |  15 +-
 Translations/Language.my.xml                     |  13 +-
 Translations/Language.nl.xml                     |  13 +-
 Translations/Language.nn.xml                     |  13 +-
 Translations/Language.pl.xml                     |  13 +-
 Translations/Language.pt-br.xml                  |  13 +-
 Translations/Language.ru.xml                     |  13 +-
 Translations/Language.sk.xml                     |  13 +-
 Translations/Language.sl.xml                     |  15 +-
 Translations/Language.sv.xml                     |  13 +-
 Translations/Language.tr.xml                     |  13 +-
 Translations/Language.uk.xml                     |  13 +-
 Translations/Language.uz.xml                     |  13 +-
 Translations/Language.vi.xml                     |  13 +-
 Translations/Language.zh-cn.xml                  |  13 +-
 Translations/Language.zh-hk.xml                  |  13 +-
 Translations/Language.zh-tw.xml                  |  13 +-
 src/Boot/Windows/BootCommon.h                    |   2 +-
 src/Boot/Windows/BootMain.cpp                    |   6 +-
 src/Build/Resources/MacOSX/Info.plist.xml        |   4 +-
 src/Common/BaseCom.cpp                           |  24 +-
 src/Common/BootEncryption.cpp                    | 263 ++++--
 src/Common/BootEncryption.h                      |  11 +-
 src/Common/Cmdline.c                             |   4 +-
 src/Common/Combo.c                               |   2 +-
 src/Common/Common.rc                             |   5 +-
 src/Common/Dictionary.c                          |  12 +-
 src/Common/Dlgcode.c                             | 171 +++-
 src/Common/Dlgcode.h                             |   3 +
 src/Common/Endian.h                              |   2 +-
 src/Common/Exception.h                           |  33 +
 src/Common/Fat.c                                 |   9 +-
 src/Common/Fat.h                                 |   2 +-
 src/Common/Format.h                              |   2 +-
 src/Common/Inflate.c                             |  19 +-
 src/Common/Language.c                            |   5 +-
 src/Common/Language.xml                          |  22 +-
 src/Common/Password.c                            |   8 +-
 src/Common/Pkcs5.c                               | 639 ++++++++-------
 src/Common/Pkcs5.h                               |  19 +-
 src/Common/Random.c                              |  60 +-
 src/Common/Random.h                              |   1 +
 src/Common/SecurityToken.cpp                     |   2 +-
 src/Common/Tcdefs.h                              |  17 +-
 src/Common/Tests.c                               |  20 +-
 src/Common/Volumes.c                             |   2 +-
 src/Core/Unix/CoreUnix.cpp                       |  17 +
 src/Crypto/Aeskey.c                              |   8 +-
 src/Driver/DriveFilter.c                         |  39 +
 src/Driver/Driver.rc                             |   8 +-
 src/Driver/Ntdriver.c                            |   2 +-
 src/Driver/Ntvol.c                               |  12 +-
 src/ExpandVolume/DlgExpandVolume.cpp             | 732 +++++++++++++++++
 src/ExpandVolume/ExpandVolume.c                  | 996 +++++++++++++++++++++++
 src/ExpandVolume/ExpandVolume.h                  |  94 +++
 src/ExpandVolume/ExpandVolume.rc                 | 320 ++++++++
 src/ExpandVolume/ExpandVolume.vcproj             | 672 +++++++++++++++
 src/ExpandVolume/InitDataArea.c                  | 358 ++++++++
 src/ExpandVolume/InitDataArea.h                  |  44 +
 src/ExpandVolume/Logo_288dpi.bmp                 | Bin 0 -> 50168 bytes
 src/ExpandVolume/Logo_96dpi.bmp                  | Bin 0 -> 5624 bytes
 src/ExpandVolume/VeraCryptExpander.manifest      |  22 +
 src/ExpandVolume/WinMain.cpp                     | 970 ++++++++++++++++++++++
 src/ExpandVolume/resource.h                      | 143 ++++
 src/Format/Format.rc                             |   8 +-
 src/Format/InPlace.c                             |  12 +
 src/Format/Tcformat.c                            |  47 +-
 src/Main/CommandLineInterface.cpp                |  21 +-
 src/Main/CommandLineInterface.h                  |   2 +-
 src/Main/Forms/ChangePasswordDialog.cpp          |   4 +-
 src/Main/Forms/Forms.cpp                         |  36 +-
 src/Main/Forms/Forms.h                           |   6 +-
 src/Main/Forms/MainFrame.cpp                     |  94 ++-
 src/Main/Forms/MainFrame.h                       |  11 +-
 src/Main/Forms/MountOptionsDialog.cpp            |   4 +-
 src/Main/Forms/PreferencesDialog.cpp             |  34 +
 src/Main/Forms/TrueCrypt.fbp                     | 287 ++++++-
 src/Main/Forms/VolumeCreationWizard.cpp          |   6 +
 src/Main/Forms/VolumePasswordPanel.cpp           |  20 +-
 src/Main/Forms/VolumePasswordPanel.h             |   2 +-
 src/Main/Forms/VolumePasswordWizardPage.cpp      |   2 +-
 src/Main/Forms/WaitDialog.cpp                    |   4 +
 src/Main/GraphicUserInterface.cpp                |  40 +-
 src/Main/GraphicUserInterface.h                  |   3 +-
 src/Main/Main.make                               |   2 +-
 src/Main/UserInterface.cpp                       |  34 +-
 src/Main/UserPreferences.cpp                     |  25 +
 src/Mount/MainCom.cpp                            |  35 +-
 src/Mount/Mount.c                                | 478 ++++++++---
 src/Mount/Mount.h                                |   1 +
 src/Mount/Mount.rc                               |  46 +-
 src/Mount/Resource.h                             |  11 +-
 src/Readme.txt                                   |   6 +-
 src/Release/Setup Files/VeraCrypt User Guide.pdf | Bin 2651588 -> 2690354 bytes
 src/Setup/ComSetup.cpp                           |   7 +
 src/Setup/Dir.c                                  |  21 +-
 src/Setup/Linux/veracrypt_install_template.sh    |  66 +-
 src/Setup/MacOSX/veracrypt.pkgproj               |   6 +-
 src/Setup/SelfExtract.c                          |  67 +-
 src/Setup/Setup.c                                | 401 ++++++++-
 src/Setup/Setup.h                                |   2 +
 src/Setup/Setup.rc                               |   8 +-
 src/Signing/sign.bat                             |   3 +-
 src/VeraCrypt.sln                                |  77 ++
 src/Volume/Hash.cpp                              |   1 +
 src/Volume/Volume.cpp                            |   3 -
 126 files changed, 7739 insertions(+), 1235 deletions(-)

diff --git a/Translations/Language.ar.xml b/Translations/Language.ar.xml
index 5c03462..b892214 100644
--- a/Translations/Language.ar.xml
+++ b/Translations/Language.ar.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="ar" name="العربية" en-name="Arabic" version="0.1.0" translators="Ahmad Gharbeia, Khaled Hosny" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="ar" key="IDC_SHOW_PASSWORD_CHPWD_ORI">‮أظهر كلمة السر</control>
     <control lang="ar" key="IDC_TRAVEL_OPEN_EXPLORER">‮افتح &نافذة إكسبلورر للمجلدات الموصولة</control>
     <control lang="ar" key="IDC_TRAV_CACHE_PASSWORDS">‮خزّن كلمات السرّ &مؤقتا في ذاكرة المُشغِّل</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="ar" key="IDC_UNMOUNTALL">‮ا&فصل الكل</control>
     <control lang="ar" key="IDC_VOLUME_PROPERTIES">‮خ&صائص المجلد…</control>
     <control lang="ar" key="IDC_VOLUME_TOOLS">‮أ&دوات المجلد…</control>
     <control lang="ar" key="IDC_WIPE_CACHE">‮ا&مح المخبئية</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="ar" key="IDD_HOTKEYS_DLG">‮تروكرِبت - أزرار الاختصار العامة للنظام</control>
     <control lang="ar" key="IDD_MOUNT_DLG">‮تروكرِبت</control>
@@ -201,6 +202,7 @@
     <control lang="ar" key="IDM_CREATE_RESCUE_DISK">‮أنشئ قرص إنقاذ…</control>
     <control lang="ar" key="IDM_CREATE_VOLUME">‮أنشئ مجلدا جديدا…</control>	
     <control lang="ar" key="IDM_DEFAULT_KEYFILES">‮الملفات المفاتيح المبدئية…</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="ar" key="IDM_ENCRYPT_SYSTEM_DEVICE">‮عمّ قسم\\سواقة النظام…</control>
     <control lang="ar" key="IDM_FAQ">‮الأسئلة المتكررة</control>
@@ -243,6 +245,7 @@
     <control lang="ar" key="IDM_UNMOUNT_VOLUME">‮افصل المجلد</control>
     <control lang="ar" key="IDM_VERIFY_RESCUE_DISK">‮اختبر قرص الإنقاذ</control>
     <control lang="ar" key="IDM_VERSION_HISTORY">‮تأريخ الإصدارات</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">توسعة المجلد</control>
     <control lang="ar" key="IDM_VOLUME_PROPERTIES">‮خصائص المجلد</control>
     <control lang="ar" key="IDM_VOLUME_WIZARD">‮مرشد إنشاء المجلدات</control>
     <control lang="ar" key="IDM_WEBSITE">‮موقع تروكرِبت على الوب</control>
@@ -523,6 +526,7 @@
     <string lang="ar" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">‮طرأ عطل أثناء جلب حالة تعمية النظام.</string>
     <string lang="ar" key="INIT_SYS_ENC">‮تعذّر استبداء مكونات التطبيق لتعمية النظام.</string>
     <string lang="ar" key="INIT_RAND">‮فشل استبداء مُولِّد الأرقام العشوائيّة!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="ar" key="INIT_REGISTER">‮تعذَّر استبداء التطبيق. فشل تسجيل فئة الحوار.</string>
     <string lang="ar" key="INIT_RICHEDIT">‮عطل: تعذَّر تحميل مكتبة التحرير الغني.</string>
     <string lang="ar" key="INTRO_TITLE">‮مرشِد تروكرِبت لإنشاء المجلدات</string>
@@ -535,6 +539,7 @@
     <string lang="ar" key="MOUNT_BUTTON">‮&أوصل</string>
     <string lang="ar" key="NEW_VERSION_REQUIRED">‮مطلوب إصدارة أحدث من تروكرِبت لوصل هذا المجلد.</string>
     <string lang="ar" key="VOL_CREATION_WIZARD_NOT_FOUND">‮عُطل: تعذَّر إيجاد مساعد إنشاء المجلدات. ‮ ‮من فضلك تحقق من وجود الملف '‪VeraCrypt Format.exe‬' في ذات دليل الذي شُغَّل منه ‪VeraCrypt.exe‬. إن لم يكن موجودا فأعد تنصيب تروكرِبت أو ابحث عن '‪VeraCrypt Format.exe‬' في ملفاتك و شغله.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="ar" key="NEXT">‮ال&لاحق></string>
     <string lang="ar" key="FINALIZE">‮ا&نهِ</string>
     <string lang="ar" key="INSTALL">‮&نصِّب</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="ar" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">‮تحذير: توجد مساحة غير مخصصة بين قسم النظام و القسم الذي يليه. بعد إنشاء نظام التشغيل المخفي ينبغي ألا تنشئ أية أقسام جديدة في هذه المساحة غير المخصصة و إلا فلن يمكن إقلاع نظام التشغيل (حتى تحذف تلك الأقسام المنشأة حديثا).</string>
     <string lang="ar" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">‮هذه الخوارزمية ليست مدعومة حاليا لتعمية النظام.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="ar" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">‮لا يمكن حاليا استخدام الملفات المفاتيح عند تعمية النظام.</string>
     <string lang="ar" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">تنبيه: تعذَّر على تروكربت استعادة النسق الأصلي للوحة المفاتيح مما قد يؤدي إلى أن تُدخلَ كلمة السر على نحو غير صحيح.</string>
     <string lang="ar" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">‮عطل: تعذّر ضبط هيئة لوحة المفاتيح لتروكربت إلى التوزيع القياسي للولايات المتحدة. ‮ ‮لاحظ أن كلمة السر يجب أن تدخل في بيئة ما قبل الإقلاع (قبل أن يبدأ ويندوز) حيث لا يتاح سوى لوحات مفاتيح ويندوز الولايات المتحدة. لذا يجب أن تدخل كلمة السر دوما باستخدام هيئة لوحة مفاتيح الولايات المتحدة القياسية.</string>
diff --git a/Translations/Language.be.xml b/Translations/Language.be.xml
index ebc9412..cc96c68 100644
--- a/Translations/Language.be.xml
+++ b/Translations/Language.be.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="be" name="Беларуская" en-name="Belarusian" version="0.1.0" translators="Aleg Azarousky" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="be" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Паказаць пароль</control>
     <control lang="be" key="IDC_TRAVEL_OPEN_EXPLORER">Адчыніць змантаваны том у акне Аглядальніка</control>
     <control lang="be" key="IDC_TRAV_CACHE_PASSWORDS">Кэшаваць пароль у памяці драйвера</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="be" key="IDC_UNMOUNTALL">Размантаваць усе</control>
     <control lang="be" key="IDC_VOLUME_PROPERTIES">Уласцівасці тома...</control>
     <control lang="be" key="IDC_VOLUME_TOOLS">Аперацыі...</control>
     <control lang="be" key="IDC_WIPE_CACHE">Ачысціць кэш</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="be" key="IDD_HOTKEYS_DLG">VeraCrypt - агульнасістэмныя хуткія клавішы</control>
     <control lang="be" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="be" key="IDM_CREATE_RESCUE_DISK">Стварыць дыск узнаўлення...</control>
     <control lang="be" key="IDM_CREATE_VOLUME">Стварыць новы том...</control>
     <control lang="be" key="IDM_DEFAULT_KEYFILES">Прадвызначаныя ключавыя файлы...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="be" key="IDM_ENCRYPT_SYSTEM_DEVICE">Зашыфраваць сістэмны падзел/дыск...</control>
     <control lang="be" key="IDM_FAQ">Пытанні і адказы</control>
@@ -243,6 +245,7 @@
     <control lang="be" key="IDM_UNMOUNT_VOLUME">Размантаваць том</control>
     <control lang="be" key="IDM_VERIFY_RESCUE_DISK">Праверыць дыск узнаўлення</control>
     <control lang="be" key="IDM_VERSION_HISTORY">Гісторыя версій</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="be" key="IDM_VOLUME_PROPERTIES">Налады тома</control>
     <control lang="be" key="IDM_VOLUME_WIZARD">Майстар стварэння тамоў</control>
     <control lang="be" key="IDM_WEBSITE">Сайт VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="be" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Памылка атрымання стану сістэмнага шыфравання.</string>
     <string lang="be" key="INIT_SYS_ENC">Немагчыма ініцыялізаваць кампаненты прыкладання для сістэмнага шыфравання.</string>
     <string lang="be" key="INIT_RAND">Памылка ініцыялізацыі генератара выпадковых лікаў.</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="be" key="INIT_REGISTER">Памылка ініцыялізацыі прыкладання. Немагчыма зарэгістраваць клас Dialog.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="be" key="INTRO_TITLE">Майстар стварэння шыфраванага тома</string>
@@ -535,6 +539,7 @@
     <string lang="be" key="MOUNT_BUTTON">Змантаваць</string>
     <string lang="be" key="NEW_VERSION_REQUIRED">Для мантавання гэтага тома патрабуецца навейшая версія VeraCrypt.</string>
     <string lang="be" key="VOL_CREATION_WIZARD_NOT_FOUND">Памылка: Майстар стварэння шыфраванага тома не знойдзены.\n\nУпэўніцеся, што файл 'VeraCrypt Format.exe' існуе побач з 'VeraCrypt.exe'. Калі не - усталюйце VeraCrypt ізноў, ці знайдзіце 'VeraCrypt Format.exe' і запусціце яго.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="be" key="NEXT">Далей ></string>
     <string lang="be" key="FINALIZE">&Гатова</string>
     <string lang="be" key="INSTALL">Усталяваць</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="be" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">У дадзены момант гэты алгарытм для шыфравання сістэмы не падтрымліваецца.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="en" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Warning: VeraCrypt could not restore the original keyboard layout. This may cause you to enter a password incorrectly.</string>
     <string lang="be" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Памылка! Немагчыма ўсталяваць раскладку клавіятуры для VeraCrypt у стандартную амерыканскую (US).\n\nЗвярніце ўвагу, што пароль уводзіцца ДА загрузкі Windows, калі любыя раскладкі клавіятуры, адрозныя ад амерыканскай, яшчэ недаступныя. Таму пароль заўсёды павінен уводзіцца пры стандартнай амерыканскай раскладцы.</string>
diff --git a/Translations/Language.bg.xml b/Translations/Language.bg.xml
index f7a016e..fb9f439 100644
--- a/Translations/Language.bg.xml
+++ b/Translations/Language.bg.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="bg" name="Български" en-name="Bulgarian" version="0.1.0" translators="Lachezar Gorchev" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="bg" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Видима парола</control>
     <control lang="bg" key="IDC_TRAVEL_OPEN_EXPLORER">Отваряне на &Explorer прозорец за монтирания том</control>
     <control lang="bg" key="IDC_TRAV_CACHE_PASSWORDS">&Кеширане на паролата в паметта на драйвера</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="bg" key="IDC_UNMOUNTALL">&Демонтиране - всички</control>
     <control lang="bg" key="IDC_VOLUME_PROPERTIES">&Свойства на тома...</control>
     <control lang="bg" key="IDC_VOLUME_TOOLS">&Инструменти за том...</control>
     <control lang="bg" key="IDC_WIPE_CACHE">&Заличаване на кеша</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="bg" key="IDD_HOTKEYS_DLG">VeraCrypt - Системни клавиши</control>
     <control lang="bg" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="bg" key="IDM_CREATE_RESCUE_DISK">Създаване на Спасителен Диск...</control>
     <control lang="bg" key="IDM_CREATE_VOLUME">Създаване на нов том...</control>
     <control lang="bg" key="IDM_DEFAULT_KEYFILES">Ключ-файлове по подразбиране...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDC_DONATE">Donate now...</control>
     <control lang="bg" key="IDM_ENCRYPT_SYSTEM_DEVICE">Криптиране на системен дял/устройство...</control>
     <control lang="bg" key="IDM_FAQ">Често задавани въпроси</control>
@@ -243,6 +245,7 @@
     <control lang="bg" key="IDM_UNMOUNT_VOLUME">Демонтиране на том</control>
     <control lang="bg" key="IDM_VERIFY_RESCUE_DISK">Проверка на Спасителен Диск</control>
     <control lang="bg" key="IDM_VERSION_HISTORY">История на версиите</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="bg" key="IDM_VOLUME_PROPERTIES">Свойства на тома</control>
     <control lang="bg" key="IDM_VOLUME_WIZARD">Помощник за създаване на томове</control>
     <control lang="bg" key="IDM_WEBSITE">VeraCrypt уебстраница</control>
@@ -523,6 +526,7 @@
     <string lang="bg" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Грешка при опит за получаване на статуса на системното криптиране.</string>
     <string lang="bg" key="INIT_SYS_ENC">Компонентите за систено криптиране не могат да бъдат инициализирани .</string>
     <string lang="bg" key="INIT_RAND">Неуспешно инициализиране на генератора за случайни числа!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="bg" key="INIT_REGISTER">Инициализацията на приложението е невъзможна. Деуспешно регистриране на Dialog класа.</string>
     <string lang="bg" key="INIT_RICHEDIT">Грешка: Не може да се зареди Rich Edit системната библиотека.</string>
     <string lang="bg" key="INTRO_TITLE">VeraCrypt помощник за създаване на томове</string>
@@ -535,6 +539,7 @@
     <string lang="bg" key="MOUNT_BUTTON">&Монтиране</string>
     <string lang="bg" key="NEW_VERSION_REQUIRED">По-нова версия на VeraCrypt е необходима за да се монтира този том.</string>
     <string lang="bg" key="VOL_CREATION_WIZARD_NOT_FOUND">Грешка: Помощника за създаване на томове не е намерен.\n\nМоля, убедете се, че файла 'VeraCrypt Format.exe' е в директорията от която се стартира 'VeraCrypt.exe'. Ако не е, моля, преинсталирайте VeraCrypt, или намерете 'VeraCrypt Format.exe' на вашия диск и го стартирайте.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="bg" key="NEXT">&Напред ></string>
     <string lang="bg" key="FINALIZE">&Край</string>
     <string lang="bg" key="INSTALL">&Инсталация</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="bg" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Внимание: Има неразпределено пространство между системния дял и първия дял след него. След като създадете скритата операционна система, не трябва да създавате нови дялове в това неразпределено пространство. В противен случай, няма да бъде възможно да се стартира скритата операционна система (докато не изтриете такива новосъздадени дялове).</string>
     <string lang="bg" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">За момента този алгоритъм не се поддържа з системно криптиране.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="bg" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">За сега ключ-файлове не се поддържат за системно криптиране.</string>
     <string lang="bg" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Внимание: VeraCrypt не може да възстанови оригиналната подредба на клавиатурата. Заради това може да въведете някоя парола грешно.</string>
     <string lang="bg" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Грешка: Подредбата на клавиатурата за VeraCrypt не може да се зададе да бъде стандартна US клавиатурна подредба.\n\nЗабележете, че паролата трябва да бъде въведена в pre-boot средата (преди стартирането на Windows), където не-US Windows клавиатурни подредби не са достъпни. Поради тази причина, паролата винаги трябва да бъде въвеждана, като се използва стандартна US клавиатурна подредба.</string>
diff --git a/Translations/Language.ca.xml b/Translations/Language.ca.xml
index 91d681f..86fef5c 100644
--- a/Translations/Language.ca.xml
+++ b/Translations/Language.ca.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="ca" name="Català" en-name="Catalan" version="0.1.0" translators="CESICAT, Centre de Seguretat de la Informació de Catalunya" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="ca" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Veure contrasenya</control>
     <control lang="ca" key="IDC_TRAVEL_OPEN_EXPLORER">Obrir una finestra de l'&exporador pel volum muntat</control>
     <control lang="ca" key="IDC_TRAV_CACHE_PASSWORDS">Guardar contrassenyes a la memòria del controlador</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="ca" key="IDC_UNMOUNTALL">&Desmuntar-ho tot</control>
     <control lang="ca" key="IDC_VOLUME_PROPERTIES">Propietats del &volum...</control>
     <control lang="ca" key="IDC_VOLUME_TOOLS">&Eines de volum...</control>
     <control lang="ca" key="IDC_WIPE_CACHE">&Buidar la memòria cau</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="ca" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Volums favorits</control>
     <control lang="ca" key="IDD_HOTKEYS_DLG">VeraCrypt - Dreceres de teclat</control>
     <control lang="ca" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="ca" key="IDM_CREATE_RESCUE_DISK">Crear un disc de recuperació...</control>
     <control lang="ca" key="IDM_CREATE_VOLUME">Crear un volum nou...</control>
     <control lang="ca" key="IDM_DEFAULT_KEYFILES">Fitxers de claus per defecte...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="ca" key="IDM_ENCRYPT_SYSTEM_DEVICE">Xifrar la partició/unitat del sistema...</control>
     <control lang="ca" key="IDM_FAQ">Preguntes més freqüents</control>
@@ -243,6 +245,7 @@
     <control lang="ca" key="IDM_UNMOUNT_VOLUME">Desmuntar el volum</control>
     <control lang="ca" key="IDM_VERIFY_RESCUE_DISK">Verificar el disc de recuperació</control>
     <control lang="ca" key="IDM_VERSION_HISTORY">Historial de versions</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="ca" key="IDM_VOLUME_PROPERTIES">Propietats del volum</control>
     <control lang="ca" key="IDM_VOLUME_WIZARD">Assistent de creació de volums</control>
     <control lang="ca" key="IDM_WEBSITE">Lloc web de VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="ca" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">S'ha produït un error quan s'intentava obtenir l'estat de xifratge del sistema.</string>
     <string lang="ca" key="INIT_SYS_ENC">No s'han pogut inicialitzar els components de l'aplicació per xifrar el sistema.</string>
     <string lang="ca" key="INIT_RAND">No s'ha pogut inicialitzar el generador de números aleatòris!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="ca" key="INIT_REGISTER">No es pot inicialitzar l'aplicació. No es pot registrar la classe Dialog.</string>
     <string lang="ca" key="INIT_RICHEDIT">Error: no s'ha pogut carregar la biblioteca d'edició enriquida del sistema.</string>
     <string lang="ca" key="INTRO_TITLE">Assistent de creació de volums</string>
@@ -535,6 +539,7 @@
     <string lang="ca" key="MOUNT_BUTTON">&Muntar</string>
     <string lang="ca" key="NEW_VERSION_REQUIRED">És necessària una versió més nova del VeraCrypt per muntar aquest volum.</string>
     <string lang="ca" key="VOL_CREATION_WIZARD_NOT_FOUND">Error: No es troba l'assistent de creació de volums.\n\nSi us plau, asseguri's que el fitxer 'VeraCrypt Format.exe' és al directori des d'ón s'ha executat el 'VeraCrypt.exe'. Si no hi és, si us plau reinstal·li el TrueCrpyt o localitzi el fitxer 'VeraCrypt Format.exe' al seu disc i executi'l.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="ca" key="NEXT">&Següent ></string>
     <string lang="ca" key="FINALIZE">&Acabar</string>
     <string lang="ca" key="INSTALL">&Instal·lar</string>
@@ -1034,8 +1039,8 @@
     <string lang="ca" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">La partició d'arranc extra es pot eliminar abans d'instal·lar el Windows. Per a fer-ho, segueixi aquests passos:\n\n1) Arrenqui el disc d'instal·ació de Windwows.\n\n2) A la pantalla d'instal·lació faci clic a 'Install now' > 'Custom (advanced)'.\n\n3) Faci clic a 'Drive Options'.\n\n seleccioni la partició de sistema principal i elimini-la.\n\n5) seleccioni la partició reservada pel sistema i faci clic a 'Extend' p [...]
     <string lang="ca" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">ATENCIÓ: Hi ha espai no assignat entre la partició del sistema i la primera partició després d'ella. Després de crear el sistema operatiu ocult, no podrà crear cap nova partició en aquest espai. Si ho fa, el sistema operatiu ocult no es podrà engegar (fins que esborri aquestes noves particions).</string>
     <string lang="ca" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Aquest algorisme de xifrat no està suportat per al xifrat del sistema</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="ca" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Els fitxers de claus no estan suportats per al xifrat del sistema.</string>
     <string lang="ca" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">ATENCIÓ: El VeraCrypt no ha pogut restaurar la disposició de teclat orignal. Això pot provocar que introdueixi la contrasenya incorrectament.</string>
     <string lang="ca" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Error: No s'ha pogut establir la disposició de teclat estàndard als EUA pel VeraCrypt.\n\nTingui en compte que la contrasenya s'haurà d'esciure a l'entorn de prearrencada (abans que arrenqui el windows) on no hi haurà altres disposicions de teclat disponibles. Per tant, la contrasenya s'ha d'escriure sempre amb la disposició de teclat estàndard als EUA.</string>
diff --git a/Translations/Language.cs.xml b/Translations/Language.cs.xml
index fb44e87..e470310 100644
--- a/Translations/Language.cs.xml
+++ b/Translations/Language.cs.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="cs" name="Čeština" en-name="Czech" version="1.0.0" translators="Vítek Moser" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="cs" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Zobrazit heslo</control>
     <control lang="cs" key="IDC_TRAVEL_OPEN_EXPLORER">Otevřít okno &Průzkumníka pro připojený svazek</control>
     <control lang="cs" key="IDC_TRAV_CACHE_PASSWORDS">&Ukládat hesla do mezipaměti</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="cs" key="IDC_UNMOUNTALL">O&dpojit vše</control>
     <control lang="cs" key="IDC_VOLUME_PROPERTIES">Vlastnos&ti svazku…</control>
     <control lang="cs" key="IDC_VOLUME_TOOLS">&Nástroje svazku…</control>
     <control lang="cs" key="IDC_WIPE_CACHE">Vyčistit &mezipaměť</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="cs" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Oblíbené svazky</control>
     <control lang="cs" key="IDD_HOTKEYS_DLG">VeraCrypt - Systémové klávesové zkratky</control>
     <control lang="cs" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="cs" key="IDM_CREATE_RESCUE_DISK">Vytvořit záchranný disk…</control>
     <control lang="cs" key="IDM_CREATE_VOLUME">Vytvořit nový svazek…</control>
     <control lang="cs" key="IDM_DEFAULT_KEYFILES">Výchozí souborové klíče…</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="cs" key="IDM_DONATE">Podpořte nás...</control>
     <control lang="cs" key="IDM_ENCRYPT_SYSTEM_DEVICE">Zašifrovat systémový oddíl/disk…</control>
     <control lang="cs" key="IDM_FAQ">Často kladené dotazy</control>
@@ -243,6 +245,7 @@
     <control lang="cs" key="IDM_UNMOUNT_VOLUME">Odpojit svazek</control>
     <control lang="cs" key="IDM_VERIFY_RESCUE_DISK">Ověřit záchranný disk</control>
     <control lang="cs" key="IDM_VERSION_HISTORY">Historie verzí</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="cs" key="IDM_VOLUME_PROPERTIES">Vlastnosti svazku</control>
     <control lang="cs" key="IDM_VOLUME_WIZARD">Průvodce vytvořením svazku</control>
     <control lang="cs" key="IDM_WEBSITE">Domovská stránka VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="cs" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Nastala chyba při získávání informací o stavu zašifrovaného systému.</string>
     <string lang="cs" key="INIT_SYS_ENC">Nelze inicializovat aplikační komponenty pro systémové šifrování.</string>
     <string lang="cs" key="INIT_RAND">Selhala inicializace generátoru náhodných čísel!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="cs" key="INIT_REGISTER">Aplikace nemohla být inicializována. Selhala registrace Dialogové třídy.</string>
     <string lang="cs" key="INIT_RICHEDIT">Chyba: Systémová knihovna Rich Edit nemohla být načtena.</string>
     <string lang="cs" key="INTRO_TITLE">Průvodce vytvořením svazku VeraCrypt</string>
@@ -535,6 +539,7 @@
     <string lang="cs" key="MOUNT_BUTTON">&Připojit</string>
     <string lang="cs" key="NEW_VERSION_REQUIRED">Pro připojení tohoto oddílu je potřeba novější verze programu VeraCrypt.</string>
     <string lang="cs" key="VOL_CREATION_WIZARD_NOT_FOUND">Chyba: Průvodce vytvořením svazku nebyl nalezen.\n\nUjistěte se prosím, že  soubor 'VeraCrypt Format.exe' je ve složce, ze které byl 'VeraCrypt.exe' spuštěn. Pokud není, přeinstalujte prosím VeraCrypt nebo najděte 'VeraCrypt Format.exe' na vašem disku a spusťte jej.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="cs" key="NEXT">&Další ></string>
     <string lang="cs" key="FINALIZE">&Dokončit</string>
     <string lang="cs" key="INSTALL">&Instalovat</string>
@@ -1034,8 +1039,8 @@
     <string lang="cs" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nDodatečný bootovací oddíl může být před instalací Windows odstraněn. Abyste to mohli udělat, řiďte se následujícími kroky:\n\n1) Nabootujte váš instalační disk Windows.\n\n2) Na instalační obrazovce Windows klikněte na 'Nyní nainstalovat' > 'Volitelné (pokročilé)'.\n\n3) Klikněte na 'Volby disku'.\n\n4) Vyberte hlavní systémový oddíl a smažte ho kliknutím na 'Smazat' a 'OK'.\n\n5) Vyberte 'Rezervovaný systémový' o [...]
     <string lang="cs" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Varování: Mezi systémovým oddílem a prvním oddílem za ním je nealokované místo. Po vytvoření skrytého operačního systému nesmíte vytvořit žádné nové oddíly v tomto nealokovaném prostoru. Jinak nebude možné spustit skrytý operační systém (dokud nesmažete takto nově vytvořené oddíly).</string>
     <string lang="cs" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Systémové šifrování momentálně nepodporuje tento algoritmus.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="cs" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Souborové klíče aktuálně nejsou podporovány pro šifrování systémů.</string>
     <string lang="cs" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Varování: VeraCrypt nemohl obnovit původní nastavení klávesnice. To může způsobit, že heslo bude zadáno nesprávně.</string>
     <string lang="cs" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Chyba: Nelze nastavit rozvržení klávesnice na typickou americkou klávesnici.\n\nHeslo musí být nastaveno v před-bootovacím prostředí (před startem Windows), kde nejsou ne-americké klávesnice k dispozici. Proto musí být heslo vždy nastaveno s použitím rozvržení kláves jako na americké klávesnici.</string>
diff --git a/Translations/Language.da.xml b/Translations/Language.da.xml
index 999cf21..e1a1bd7 100644
--- a/Translations/Language.da.xml
+++ b/Translations/Language.da.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="da" name="Dansk" en-name="Danish" version="0.1.0" translators="Lasse Bond" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="da" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Vis kodeord</control>
     <control lang="da" key="IDC_TRAVEL_OPEN_EXPLORER">Åben &Explorer vindue for tilsluttet bind</control>
     <control lang="da" key="IDC_TRAV_CACHE_PASSWORDS">&Gem kodeord i driver-hukommelsen</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="da" key="IDC_UNMOUNTALL">Afb&ryd Alle</control>
     <control lang="da" key="IDC_VOLUME_PROPERTIES">Bin&d Egenskaber...</control>
     <control lang="da" key="IDC_VOLUME_TOOLS">Bind V&ærktøjer...</control>
     <control lang="da" key="IDC_WIPE_CACHE">&Slet hukommelsen</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="da" key="IDD_HOTKEYS_DLG">VeraCrypt - System genvejstaster</control>
     <control lang="da" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="da" key="IDM_CREATE_RESCUE_DISK">Opret Nødhjælps Disk...</control>
     <control lang="da" key="IDM_CREATE_VOLUME">Opret nyt Bind...</control>
     <control lang="da" key="IDM_DEFAULT_KEYFILES">Standard nøglefiler...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="da" key="IDM_ENCRYPT_SYSTEM_DEVICE">Krypter System Partition/Drev...</control>
     <control lang="da" key="IDM_FAQ">FAQ - Ofte stillede spørgsmål</control>
@@ -243,6 +245,7 @@
     <control lang="da" key="IDM_UNMOUNT_VOLUME">Afbryd Bind</control>
     <control lang="da" key="IDM_VERIFY_RESCUE_DISK">Kontroller Nødhjælps Disk</control>
     <control lang="da" key="IDM_VERSION_HISTORY">Versions Historik</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="da" key="IDM_VOLUME_PROPERTIES">Bind Egenskaber</control>
     <control lang="da" key="IDM_VOLUME_WIZARD">Bind Oprettelsesguide</control>
     <control lang="da" key="IDM_WEBSITE">VeraCrypt Hjemmeside</control>
@@ -523,6 +526,7 @@
     <string lang="da" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">En fejl opstod under læsning af system krypterings status.</string>
     <string lang="da" key="INIT_SYS_ENC">Kan ikke initialisere applikations komponenter for system kryptering.</string>
     <string lang="da" key="INIT_RAND">Kunne ikke initialisere tilfældigheds nummergenerator!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="da" key="INIT_REGISTER">Kunne ikke initialisere applikationen. Fejl i registrering af Dialog class.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="da" key="INTRO_TITLE">VeraCrypt Bind Oprettelsesguide</string>
@@ -535,6 +539,7 @@
     <string lang="da" key="MOUNT_BUTTON">&Tilslut</string>
     <string lang="da" key="NEW_VERSION_REQUIRED">En nyere version af VeraCrypt kræves for at tilslutte dette bind.</string>
     <string lang="da" key="VOL_CREATION_WIZARD_NOT_FOUND">Fejl: Bind Oprettelsesguiden er ikke fundet.\n\nKontroller venligst at 'VeraCrypt Format.exe' er i mappen hvorfra 'VeraCrypt.exe' blev startet. Hvis den ikke er, geninstaller VeraCrypt, eller find 'VeraCrypt Format.exe' på din harddisk og start den.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="da" key="NEXT">&Næste ></string>
     <string lang="da" key="FINALIZE">&Afslut</string>
     <string lang="da" key="INSTALL">&Installer</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="da" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Advarsel: Der er uallokeret område mellem system partition og den første partition bag den. Efter du har oprettet det skjulte operativsystem, må du ikke oprette nogle nye partitioner i det uallokerede område. Ellers vil det skjulte operativsystem være umuligt at boote (indtil du sletter sådanne nyoprettede partitioner).</string>
     <string lang="da" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Denne algoritme er for tiden ikke supporteret til system kryptering.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="da" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Advarsel: VeraCrypt kunne ikke gendanne det originale keyboard layout. Dette kan medføre at du indtaster et kodeord ukorrekt.</string>
     <string lang="da" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Fejl: Kan ikke indstille keyboard layoutet for VeraCrypt til standard US keyboard layout.\n\nBemærk at kodeordet skal indtastes i før-boot miljøet (før Windows starter) hvor ikke-US Windows keyboard layouts ikke er tilgængelige. Derfor skal kodeordet altid skrives ved brug af standard US keyboard layout.</string>
diff --git a/Translations/Language.de.xml b/Translations/Language.de.xml
index 95e829d..51a2ce5 100644
--- a/Translations/Language.de.xml
+++ b/Translations/Language.de.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
-    <language langid="de" name="Deutsch" en-name="German" version="1.0.1" translators="Harry Haller, Alexander Schorg, Simon Frankenberger, David Arndt" />
+    <language langid="de" name="Deutsch" en-name="German" version="1.1.0" translators="Harry Haller, Alexander Schorg, Simon Frankenberger, David Arndt, H. Sauer" />
     <!-- Fonts -->
     <font lang="de" class="normal" size="11" face="default" />
     <font lang="de" class="bold" size="13" face="Arial" />
@@ -44,7 +44,7 @@
     <control lang="de" key="IDC_HIDVOL_WIZ_MODE_FULL">Kompletter Modus</control>
     <control lang="de" key="IDC_KB">&KB</control>
     <control lang="de" key="IDC_KEYFILES_ENABLE">Schlüsselda&t. verwenden</control>
-    <control lang="en" key="IDC_KEYFILES_RANDOM_SIZE">Random size ( 64 <-> 1048576 )</control>
+    <control lang="de" key="IDC_KEYFILES_RANDOM_SIZE">Zufällige Größe ( 64 <-> 1048576 )</control>
     <control lang="de" key="IDC_KEY_FILES">Schlüsselda&teien…</control>
     <control lang="de" key="IDC_LINK_HASH_INFO">Infos über Hash-Algorithmen</control>
     <control lang="de" key="IDC_LINK_MORE_INFO_ABOUT_CIPHER">Weitere Informationen</control>
@@ -146,7 +146,7 @@
     <control lang="de" key="IDC_PREF_CACHE_PASSWORDS">Kennwörter im &Cache halten</control>
     <control lang="de" key="IDC_PREF_DISMOUNT_INACTIVE">Bei ausbleibendem Lese-/Schreibzugriff aut&omatisch trennen nach</control>
     <control lang="de" key="IDC_PREF_DISMOUNT_LOGOFF">Benutzerabmel&dung</control>
-    <control lang="en" key="IDC_PREF_DISMOUNT_SESSION_LOCKED">User session locked</control>
+    <control lang="de" key="IDC_PREF_DISMOUNT_SESSION_LOCKED">Benutzersession gesperrt</control>
     <control lang="de" key="IDC_PREF_DISMOUNT_POWERSAVING">Wechsel in Energiesparmod&us</control>
     <control lang="de" key="IDC_PREF_DISMOUNT_SCREENSAVER">Bildsc&hirmschonerstart</control>
     <control lang="de" key="IDC_PREF_FORCE_AUTO_DISMOUNT">Automatisches Trennen bei geöffneten Date&ien erzwingen</control>
@@ -167,11 +167,12 @@
     <control lang="de" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Kennwort an&zeigen</control>
     <control lang="de" key="IDC_TRAVEL_OPEN_EXPLORER">&Explorer-Fenster für eingebundenes Volumen öffnen</control>
     <control lang="de" key="IDC_TRAV_CACHE_PASSWORDS">Kennwort im Cache halten</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="de" key="IDC_TRUECRYPT_MODE">TrueCrypt Modus</control>
     <control lang="de" key="IDC_UNMOUNTALL">A&lle trennen</control>
     <control lang="de" key="IDC_VOLUME_PROPERTIES">Eigenscha&ften...</control>
     <control lang="de" key="IDC_VOLUME_TOOLS">Vol.-&Operationen…</control>
     <control lang="de" key="IDC_WIPE_CACHE">&Cache sicher löschen</control>
+    <control lang="de" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Parameter beim Einbinden</control>
     <control lang="de" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favoriten-Volumen</control>
     <control lang="de" key="IDD_HOTKEYS_DLG">VeraCrypt – Systemweite Tastenkombinationen</control>
     <control lang="de" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="de" key="IDM_CREATE_RESCUE_DISK">Rettungsdatenträger erstellen...</control>
     <control lang="de" key="IDM_CREATE_VOLUME">&Neues Volumen erstellen...</control>
     <control lang="de" key="IDM_DEFAULT_KEYFILES">&Standardschlüsseldateien...</control>
+    <control lang="de" key="IDM_DEFAULT_MOUNT_PARAMETERS">Standardparameter beim Einbinden...</control>
     <control lang="de" key="IDM_DONATE">Jetzt spenden....</control>
     <control lang="de" key="IDM_ENCRYPT_SYSTEM_DEVICE">System-Partition/Laufwerk verschlüsseln...</control>
     <control lang="de" key="IDM_FAQ">Häufig gestellte &Fragen (FAQ)</control>
@@ -243,6 +245,7 @@
     <control lang="de" key="IDM_UNMOUNT_VOLUME">Volumen &trennen</control>
     <control lang="de" key="IDM_VERIFY_RESCUE_DISK">Rettungsdatenträger überprüfen</control>
     <control lang="de" key="IDM_VERSION_HISTORY">&Versionsverlauf</control>
+    <control lang="de" key="IDM_VOLUME_EXPANDER">Volumen-Erweiterer</control>
     <control lang="de" key="IDM_VOLUME_PROPERTIES">E&igenschaften des VeraCrypt-Volumens</control>
     <control lang="de" key="IDM_VOLUME_WIZARD">VeraCrypt-Volumen &erstellen…</control>
     <control lang="de" key="IDM_WEBSITE">VeraCrypt-&Webseite</control>
@@ -272,7 +275,7 @@
     <control lang="de" key="IDT_PARALLELIZATION_OPTIONS">Thread-basierte Parallelisierung</control>
     <control lang="de" key="IDT_PKCS11_LIB_PATH">Pfad der PKCS #11 Bibliothek</control>
     <control lang="de" key="IDT_PKCS5_PRF">PKCS-5 PRF:</control>
-    <control lang="en" key="IDT_NEW_PKCS5_PRF">PKCS-5 PRF:</control>
+    <control lang="de" key="IDT_NEW_PKCS5_PRF">PKCS-5 PRF:</control>
     <control lang="de" key="IDT_PW_CACHE_OPTIONS">Kennwort-Cache (im Speicher des VeraCrypt-Treibers)</control>
     <control lang="de" key="IDT_SECURITY_OPTIONS">Sicherheitsoptionen</control>
     <control lang="de" key="IDT_TASKBAR_ICON">VeraCrypt Hintergrunddienst</control>
@@ -335,9 +338,9 @@
     <control lang="de" key="IDT_KEYFILE_GENERATOR_NOTE">WICHTIG: Den Mauszeiger in diesem Fenster zufällig hin u. her bewegen. Je länger (min. 30 Sek.) Sie die Maus bewegen desto besser. Dies trägt zu einer verbesserten Verschlüsselung bei.</control>
     <control lang="de" key="IDT_KEYFILE_WARNING">WARNUNG: Ein Volumen kann nicht mehr eingebunden werden, wenn eine der Schlüsseldateien fehlt oder in den ersten 1024 KB verändert wurde!</control>
     <control lang="de" key="IDT_KEY_UNIT">Bit</control>
-    <control lang="en" key="IDT_NUMBER_KEYFILES">Number of keyfiles:</control>
-    <control lang="en" key="IDT_KEYFILES_SIZE">Keyfiles size (in Bytes):</control>
-    <control lang="en" key="IDT_KEYFILES_BASE_NAME">Keyfiles base name:</control>
+    <control lang="de" key="IDT_NUMBER_KEYFILES">Anzahl Schlüsseldateien:</control>
+    <control lang="de" key="IDT_KEYFILES_SIZE">Größe der Schlüsseldateien (in Bytes):</control>
+    <control lang="de" key="IDT_KEYFILES_BASE_NAME">Name der Schlüsseldateien:</control>
     <control lang="de" key="IDT_LANGPACK_AUTHORS">Übersetzt von:</control>
     <control lang="de" key="IDT_PLAINTEXT">Klartextgröße:</control>
     <control lang="de" key="IDT_PLAINTEXT_SIZE_UNIT">Bit</control>
@@ -348,7 +351,7 @@
     <control lang="de" key="IDT_SECURITY_TOKEN">Security-Token:</control>
     <control lang="de" key="IDT_SORT_METHOD">Sortiermethode:</control>
     <control lang="de" key="IDT_STATIC_MODELESS_WAIT_DLG_INFO">Bitte warten. Dieser Vorgang kann sehr lange dauern...</control>
-    <control lang="en" key="IDT_STATIC_MODAL_WAIT_DLG_INFO">Please wait...\nThis process may take a long time and VeraCrypt may become unresponsive.</control>
+    <control lang="de" key="IDT_STATIC_MODAL_WAIT_DLG_INFO">Bitte warten...\nDieser Prozess kann sehr lange dauern und VeraCrypt kann vorrübergehend hängen bleiben.</control>
     <control lang="de" key="IDT_TEST_BLOCK_NUMBER">Block Nummer:</control>
     <control lang="de" key="IDT_TEST_CIPHERTEXT">Chiffretext (hexadezimal)</control>
     <control lang="de" key="IDT_TEST_DATA_UNIT_NUMBER">Dateneinheit-Nummer (64-bit hexadezimal, die Größe einer Dateneinheit beträgt 512 Byte) </control>
@@ -522,7 +525,8 @@
     <string lang="de" key="CONFIRM_RESTART">Ihr Computer muss Neu gestartet werden.\n\nMöchten Sie jetzt Neu starten?</string>
     <string lang="de" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Beim Status abrufen für die Systemverschlüsselung ist ein Fehler aufgetreten.</string>
     <string lang="de" key="INIT_SYS_ENC">Die Anwendungskomponenten konnten nicht Initialisiert werden.</string>
-    <string lang="de" key="INIT_RAND">Der Zufallszahlengenerator konnte nicht initialisiert werden!</string>
+    <string lang="de" key="INIT_RAND">Der Zufallszahlengenerator konnte nicht initialisiert werden!\n\n\n(Sollten Sie in diesem Zusammenhang einen Fehler melden, so bitten wir Sie folgende techn. Informationen im Fehlerbericht zu berücksichtigen: %hs, Letzter Fehler = 0x%.8X)</string>
+    <string lang="de" key="CAPI_RAND">Windows Crypto API ist fehlgeschlagen!\n\n\n(Sollten Sie in diesem Zusammenhang einen Fehler melden, so bitten wir Sie folgende techn. Informationen im Fehlerbericht zu berücksichtigen: %hs, Letzter Fehler = 0x%.8X)</string>
     <string lang="de" key="INIT_REGISTER">Die Anwendung konnte nicht initialisiert werden. Die Registrierung der Dialogklasse ist fehlgeschlagen.</string>
     <string lang="de" key="INIT_RICHEDIT">FEHLER: Kann die 'RichEdit' Systembibliothek nicht laden.</string>
     <string lang="de" key="INTRO_TITLE">VeraCrypt-Volumen erstellen</string>
@@ -535,6 +539,7 @@
     <string lang="de" key="MOUNT_BUTTON">E&inbinden</string>
     <string lang="de" key="NEW_VERSION_REQUIRED">Zum Einbinden dieses Volumen wird eine neuere VeraCrypt-Version benötigt.</string>
     <string lang="de" key="VOL_CREATION_WIZARD_NOT_FOUND">FEHLER: Der Assistent zum Erstellen von VeraCrypt-Volumen wurde nicht gefunden.\n\nDie Datei "VeraCrypt Format.exe" muss sich in demselben Verzeichnis befinden von welchem aus "VeraCrypt.exe" gestartet worden ist. Falls diese Datei fehlt muss VeraCrypt neu installiert, oder die Datei "VeraCrypt Format.exe" manuell gesucht und gestartet werden.</string>
+    <string lang="de" key="VOL_EXPANDER_NOT_FOUND">FEHLER: Der Volumen-Expander wurde nicht gefunden.\n\nBitte stellen Sie sicher, dass sich die Datei 'VeraCryptExpander.exe' im dem Ordner befindet, von welchem aus die Datei 'VeraCrypt.exe' gestartet wurde. Andernfalls installieren Sie VeraCrypt bitte neu oder suchen Sie die Datei 'VeraCryptExpander.exe' auf Ihrer Festplatte und starten Sie diese.</string>
     <string lang="de" key="NEXT">&Weiter ></string>
     <string lang="de" key="FINALIZE">&Fertig stellen</string>
     <string lang="de" key="INSTALL">&Installieren</string>
@@ -608,7 +613,7 @@
     <string lang="de" key="SELECT_DEST_DIR">Zielverzeichnis auswählen</string>
     <string lang="de" key="SELECT_KEYFILE">Schlüsseldatei auswählen</string>
     <string lang="de" key="SELECT_KEYFILE_PATH">Suchpfad für Schlüsseldatei auswählen. WARNUNG: Es wird lediglich der Pfad nicht aber die Dateinamen berücksichtigt!</string>
-    <string lang="en" key="SELECT_KEYFILE_GENERATION_DIRECTORY">Select a directory where to store the keyfiles.</string>
+    <string lang="de" key="SELECT_KEYFILE_GENERATION_DIRECTORY">Wählen Sie den Ordner, in den die Schlüsseldateien gespeichert werden sollen.</string>
     <string lang="de" key="SERPENT_HELP">Entwickelt von Ross Anderson, Eli Biham, und Lars Knudsen. 1998 herausgegeben. 256-bit Schlüssellänge, 128-bit Blockgröße. Arbeitet im XTS-Modus. Serpent war einer der AES Finalisten.</string>
     <string lang="de" key="SIZE_HELP">Bitte geben Sie die Größe des zu erstellenden Containers an.\n\nWenn sie einen dynamischen (Sparse-Datei) Container erstellen, dann gibt dieser Wert seine maximal mögliche Größe an.\n\nHinweis: die Mindestgröße eines FAT Volumen ist 292 KB. Die Mindestgröße eines NTFS Volumen ist 3792 KB.</string>
     <string lang="de" key="SIZE_HELP_HIDDEN_HOST_VOL">Bitte geben Sie die Größe des zu erstellenden äußeren Volumens (Sie erstellen erst ein äußeres Volumen und dann darin ein Verstecktes Volumen). Die Mindestgröße eines Volumen innerhalb welchem ein verstecktes Volumen erstellt werden kann ist 340 KB.</string>
@@ -760,7 +765,7 @@
     <string lang="de" key="REMOVABLE_DISK">Wechseldatenträger</string>
     <string lang="de" key="HARDDISK">Festplatte</string>
     <string lang="de" key="UNCHANGED">Unverändert</string>
-    <string lang="en" key="AUTODETECTION">Autodetection</string>
+    <string lang="de" key="AUTODETECTION">Automatische Erkennung</string>
     <string lang="de" key="SETUP_MODE_TITLE">Installationsassistent - Wählen Sie eine Installationsoption</string>
     <string lang="de" key="SETUP_MODE_INFO">Wenn Sie nicht sicher sind verwenden Sie bitte die automatisch markierte Option.</string>
     <string lang="de" key="SETUP_MODE_HELP_INSTALL">Wählen Sie diese Option wenn Sie VeraCrypt auf diesem System neu installieren möchten.</string>
@@ -874,11 +879,11 @@
     <string lang="de" key="ENTER_HIDDEN_VOL_PASSWORD">Geben Sie das Kennwort für das versteckte Volumen ein</string>
     <string lang="de" key="ENTER_HEADER_BACKUP_PASSWORD">Geben Sie das Kennwort für den, in der Sicherungsdatei abgelegten, Header ein</string>
     <string lang="de" key="KEYFILE_CREATED">Die Schlüsseldatei wurde erfolgreich erstellt.</string>
-    <string lang="en" key="KEYFILE_INCORRECT_NUMBER">The number of keyfiles you supplied is invalid.</string>
-    <string lang="en" key="KEYFILE_INCORRECT_SIZE">The keyfile size must be comprized between 64 and 1048576 bytes.</string>
-    <string lang="en" key="KEYFILE_EMPTY_BASE_NAME">Please enter a name for the keyfile(s) to be generated</string>
-    <string lang="en" key="KEYFILE_INVALID_BASE_NAME">The base name of the keyfile(s) is invalid</string>
-    <string lang="en" key="KEYFILE_ALREADY_EXISTS">The keyfile '%s' already exists.\nDo you want to overwrite it? The generation process will be stopped if you answer No.</string>
+    <string lang="de" key="KEYFILE_INCORRECT_NUMBER">Die Anzahl der gewählten Schlüsseldateien ist unzulässig.</string>
+    <string lang="de" key="KEYFILE_INCORRECT_SIZE">Die Schlüsseldatei muss zwischen 64 und 1048576 Bytes groß sein.</string>
+    <string lang="de" key="KEYFILE_EMPTY_BASE_NAME">Bitte geben Sie einen Namen für die zu generierenden Schlüsseldateien ein</string>
+    <string lang="de" key="KEYFILE_INVALID_BASE_NAME">Der Name für die Schlüsseldateien ist unzulässig</string>
+    <string lang="de" key="KEYFILE_ALREADY_EXISTS">Die Schlüsseldatei '%s' existiert bereits.\nMöchten Sie sie überschreiben? Der Erstellungsprozess wird abgebrochen, wenn Sie Nein wählen.</string>
     <string lang="de" key="HEADER_DAMAGED_AUTO_USED_HEADER_BAK">Warnung: Der Header von diesen Volumen ist beschädigt! VeraCrypt verwendet automatisch die Sicherung vom Volumen-Header, welche im Volumen eingebettet ist.\n\nSie sollten den Volumen-Header reparieren, indem 'Extras' > 'Volumen-Header wiederherstellen...' auswählen.</string>
     <string lang="de" key="VOL_HEADER_BACKED_UP">Der Volumen-Header wurde erfolgreich gesichert.\n\nWICHTIG: Beim Wiederherstellen des Volumen-Headers mit dieser Sicherungskopie wird gleichzeitig das momentane Volumen-Kennwort wiederhergestellt. Werden zudem Schlüsseldatei(en) zum Einbinden dieses Volumen benötigt, so werden dieselben Schlüsseldatei(en) auch dann wieder zum Einbinden des Volumens benötigt nachdem der Volumen-Header wiederhergestellt worden ist.\n\nWARNUNG: Diese Sicherun [...]
     <string lang="de" key="VOL_HEADER_RESTORED">Der Volumen-Header wurde erfolgreich wiederhergestellt.\n\nWICHTIG: Möglicherweise wurde ein veraltetes Kennwort ebenfalls wiederhergestellt. Wurden zudem zum Zeitpunkt der Sicherung Schlüsseldatei(en) zum Einbinden dieses Volumen benötigt, so werden dieselben Schlüsseldatei(en) jetzt ebenfalls wieder zum Einbinden des Volumens benötigt.</string>
@@ -1034,8 +1039,8 @@
     <string lang="de" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nDie extra Bootpartition kann vor der Installation von Windows entfernt werden. Um dies zu tun, befolgen sie diese Schritte:\n\n1) Starten Sie Windows von der Installations-CD. \n\n2) Im Windows-Installationsbildschirm, klicken Sie "Jetzt installieren"; > "Benutzerdefiniert (erweitert)".\n\n3) Klicken Sie auf "Laufwerksoptionen (erweitert)".\n\n4)Wählen Sie die Hauptsystempartition aus und löschen Sie diese indem S [...]
     <string lang="de" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warnung: Es gibt einen nicht zugeordneten Bereich zwischen der Systempartition und der ersten Partition dahinter. Sie dürfen nach dem Erstellen des versteckten Betriebssystems keine neuen Partitionen in dem nicht zugeordneten Bereich erstellen. Das Versteckte Betriebssystem wird andernfalls nicht starten (bis Sie solche neu erstellten Partitionen löschen).</string>
     <string lang="de" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Dieser Algorithmus wird derzeit nicht für die Systemverschlüsselung unterstützt.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="de" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">Dieser Algorithmus ist im TrueCrypt Modus nicht vothanden.</string>
+    <string lang="de" key="UNSUPPORTED_TRUECRYPT_FORMAT">Das Volumen wurde mit TrueCrypt %x.%x erstellt, aber VeraCrypt unterstützt nur TrueCrypt volumes, die mit TrueCrypt 6.x erstellt wurden.</string>
     <string lang="de" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Schlüsseldateien werden derzeit nicht für die Systemverschlüsselung unterstützt.</string>
     <string lang="de" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Warnung: VeraCrypt konnte das ursprüngliche Tastaturlayout nicht wiederherstellen. Dadurch könnten Sie das Passwort falsch eingeben.</string>
     <string lang="de" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Fehler: Es kann das Tastaturlayout für VeraCrypt nicht auf das Standard-US-Tastaturlayout festgelegt werden.\n\nBeachten Sie, dass das Kennwort in der Pre-Boot Umgebung eingegeben werden muss (bevor Windows startet), wo Nicht-US Windows Tastaturlayouts nicht verfügbar sind. Daher muss das Kennwort immer unter Verwendung des Standard-US-Tastaturlayout eingegeben werden.</string>
diff --git a/Translations/Language.el.xml b/Translations/Language.el.xml
index fb8deb3..bc7078d 100644
--- a/Translations/Language.el.xml
+++ b/Translations/Language.el.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="el" name="Ελληνικά" en-name="Greek" version="0.1.0" translators="Βασίλης Κοσμίδης" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="el" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Εμφάνιση κωδικού</control>
     <control lang="el" key="IDC_TRAVEL_OPEN_EXPLORER">Άνοιγμα &Explorer για φορτωμένους τόμους</control>
     <control lang="el" key="IDC_TRAV_CACHE_PASSWORDS">&Αποθήκευση κωδικών στη μνήμη του οδηγού</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="el" key="IDC_UNMOUNTALL">Εκ&φόρτωση όλων</control>
     <control lang="el" key="IDC_VOLUME_PROPERTIES">&Ιδιότητες τόμου...</control>
     <control lang="el" key="IDC_VOLUME_TOOLS">Εργαλεία &τόμου...</control>
     <control lang="el" key="IDC_WIPE_CACHE">&Διαγραφή μνήμης cache</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="el" key="IDD_HOTKEYS_DLG">VeraCrypt - Συντομεύσεις</control>
     <control lang="el" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="el" key="IDM_CREATE_RESCUE_DISK">Δημιουργία Δίσκου Ασφαλείας...</control>
     <control lang="el" key="IDM_CREATE_VOLUME">Δημιουργία νέου τόμου...</control>
     <control lang="el" key="IDM_DEFAULT_KEYFILES">Εξ'ορισμού αρχεία-κλειδιά...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="el" key="IDM_ENCRYPT_SYSTEM_DEVICE">Κρυπτογράφηση διαμερίσματος/οδηγού συστήματος...</control>
     <control lang="el" key="IDM_FAQ">Συχνές ερωτήσεις</control>
@@ -243,6 +245,7 @@
     <control lang="el" key="IDM_UNMOUNT_VOLUME">Εκφόρτωση τόμων</control>
     <control lang="el" key="IDM_VERIFY_RESCUE_DISK">Επαλήθευση Δίσκου Ασφαλείας</control>
     <control lang="el" key="IDM_VERSION_HISTORY">Ιστορικό εκδόσεων</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="el" key="IDM_VOLUME_PROPERTIES">Ιδιότητες τόμου</control>
     <control lang="el" key="IDM_VOLUME_WIZARD">Οδηγός δημιουργίας τόμου</control>
     <control lang="el" key="IDM_WEBSITE">Ιστοτόπος VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="el" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Ένα σφάλμα συνέβη κατά τη λήψη της κατάστασης κρυπτογράφησης του συστήματος.</string>
     <string lang="el" key="INIT_SYS_ENC">Αδυναμία αρχικοποίησης των στοιχείων της εφαρμογής για κρυπτογράφηση του συστήματος.</string>
     <string lang="el" key="INIT_RAND">Αποτυχία αρχικοποίησης της γεννήτριας τυχαίων αριθμών!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="el" key="INIT_REGISTER">Αδυναμία αρχικοποίησης της εφαρμογής. Αποτυχία καταχώρησης της τάξης διαλόγου.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="el" key="INTRO_TITLE">Οδηγός δημιουργίας τόμου VeraCrypt</string>
@@ -535,6 +539,7 @@
     <string lang="el" key="MOUNT_BUTTON">&Φόρτωση</string>
     <string lang="el" key="NEW_VERSION_REQUIRED">Μια νεότερη έκδοση του VeraCrypt χρειάζεται για να φορτώσετε αυτό τον τόμο.</string>
     <string lang="el" key="VOL_CREATION_WIZARD_NOT_FOUND">Σφάλμα: Δε βρέθηκε ο Οδηγός δημιουργίας τόμου.\n\nΠαρακαλώ σιγουρευτείτε ότι το αρχείο "VeraCrypt Format.exe" είναι στο φάκελο από τον οποίο έτρεξε το "VeraCrypt.exe". Αν δεν είναι ξαναεγκαταστήστε το VeraCrypt ή εντοπίστε το "VeraCrypt Format.exe" στο δίσκο σας και τρέξτε το.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="el" key="NEXT">&Επόμενο ></string>
     <string lang="el" key="FINALIZE">&Τέλος</string>
     <string lang="el" key="INSTALL">&Εγκατάσταση</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="el" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Αυτός ο αλγόριθμος προς το παρόν δεν υποστηρίζεται για κρυπτογράφηση συστήματος.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="el" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Προειδοποίηση: Το VeraCrypt δεν μπόρεσε να επαναφέρει την αρχική διάταξη του πληκτρολογίου. Αυτό μπορεί να προκαλέσει εσφαλμένη εισαγωγή κωδικού.</string>
     <string lang="el" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Σφάλμα: Αδυναμία ορισμού διάταξης πληκτρολογίου για το VeraCrypt σε Η.Π.Α..\n\nΣημειώστε ότι ο κωδικός πρέπει να πληκτρολογηθεί στο περιβάλλον πριν την εκκίνηση των Windows όπου μη-Η.Π.Α. διατάξεις πληκτρολογίου δεν είναι διαθέσιμες. Γι'αυτό ο κωδικός πρέπει πάντα να πληκτρολογείται με χρήση διάταξης πληκτρολογίου Η.Π.Α.</string>
diff --git a/Translations/Language.es.xml b/Translations/Language.es.xml
index c5682f5..aa4092b 100644
--- a/Translations/Language.es.xml
+++ b/Translations/Language.es.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="es" name="Español" en-name="Spanish" version="1.0.0" translators="Juan Antonio Auñón Ochando" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="es" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Mostrar contraseña</control>
     <control lang="es" key="IDC_TRAVEL_OPEN_EXPLORER">Abrir en el &explorador el volumen montado</control>
     <control lang="es" key="IDC_TRAV_CACHE_PASSWORDS">Guardar &contraseña en caché</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="es" key="IDC_UNMOUNTALL">&Desmontar Todo</control>
     <control lang="es" key="IDC_VOLUME_PROPERTIES">Propiedades del &Volumen</control>
     <control lang="es" key="IDC_VOLUME_TOOLS">Herramien&tas de volumen</control>
     <control lang="es" key="IDC_WIPE_CACHE">&Borrar Caché</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="es" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Volúmenes favoritos</control>
     <control lang="es" key="IDD_HOTKEYS_DLG">VeraCrypt - Atajos de teclado para sistema completo</control>
     <control lang="es" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="es" key="IDM_CREATE_RESCUE_DISK">Crear Disco de Rescate</control>
     <control lang="es" key="IDM_CREATE_VOLUME">Crear Nuevo Volumen</control>
     <control lang="es" key="IDM_DEFAULT_KEYFILES">Archivos-llave Por Defecto</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="es" key="IDM_DONATE">Donar ahora...</control>
     <control lang="es" key="IDM_ENCRYPT_SYSTEM_DEVICE">Cifrar la Partición/Unidad del Sistema</control>
     <control lang="es" key="IDM_FAQ">Preguntas Frecuentes</control>
@@ -243,6 +245,7 @@
     <control lang="es" key="IDM_UNMOUNT_VOLUME">Desmontar Volumen</control>
     <control lang="es" key="IDM_VERIFY_RESCUE_DISK">Verificar Disco de Rescate</control>
     <control lang="es" key="IDM_VERSION_HISTORY">Historial de Versiones</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="es" key="IDM_VOLUME_PROPERTIES">Propiedades de Volumen</control>
     <control lang="es" key="IDM_VOLUME_WIZARD">Asistente de Creación de Volumen</control>
     <control lang="es" key="IDM_WEBSITE">Sitio Web de VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="es" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Ha ocurrido un error al obtener el estado del cifrado del sistema.</string>
     <string lang="es" key="INIT_SYS_ENC">No se pueden inicializar componentes de la aplicación para el cifrado del sistema.</string>
     <string lang="es" key="INIT_RAND">¡Fallo al inicializar el generador de números aleatorios!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="es" key="INIT_REGISTER">No se pudo iniciar la aplicación. Fallo al registrar la clase Dialog.</string>
     <string lang="es" key="INIT_RICHEDIT">Error: Fallo al cargar la librería de sistema Rich Edit.</string>
     <string lang="es" key="INTRO_TITLE">Asistente de Creación de Volúmenes VeraCrypt</string>
@@ -535,6 +539,7 @@
     <string lang="es" key="MOUNT_BUTTON">&Montar</string>
     <string lang="es" key="NEW_VERSION_REQUIRED">Se requiere una versión más reciente de VeraCrypt para montar este volumen.</string>
     <string lang="es" key="VOL_CREATION_WIZARD_NOT_FOUND">Error: Asistente para la Creación de Volumen no encontrado.\n\nVerifique que el archivo 'VeraCrypt Format.exe' este en la misma carpeta que el archivo ' VeraCrypt.exe'. Si no es así, reinstale VeraCrypt o localice el archivo 'VeraCrypt Format.exe' en su disco y ejecútelo.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="es" key="NEXT">&Siguiente ></string>
     <string lang="es" key="FINALIZE">&Finalizar</string>
     <string lang="es" key="INSTALL">&Instalar</string>
@@ -1034,8 +1039,8 @@
     <string lang="es" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nLa partición de arranque adicional puede ser eliminada antes de instalar Windows. Para hacerlo, siga estos pasos:\n\n1) Arranque su disco de instalación de Windows.\n\n2) En la pantalla del instalador de Windows, haga click en 'Instalar ahora' > 'Personalizar (avanzada)'.\n\n3) Click en 'Opciones de Dispositivo'.\n\n4) Seleccione la partición del sistema principal y bórrela pulsando 'Eliminar' y 'Aceptar'.\n\n5) S [...]
     <string lang="es" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Aviso: Hay espacio no asignado entre la partición del sistema y la primera partición tras ella. Después de crear el sistema operativo oculto, no debe crear ninguna partición nueva en ese espacio sin asignar. De lo contrario, podría ser iposible arrancar el sistema operativo oculto (hasta que elimine esas particiones nuevas).</string>
     <string lang="es" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Este algoritmo no está soportado actualmente para el cifrado del sistema.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="es" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Los archivos-llave no están soportados actualmente para el cifrado del sistema.</string>
     <string lang="es" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Aviso: VeraCrypt no pudo restaurar la disposición de teclado original. Esto puede hacer que ud. introduzca incorrectamente la contraseña.</string>
     <string lang="es" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Error: No se puede establecer la disposición del teclado para VeraCrypt al estándar de EEUU.\n\nRecuerde que la contraseña necesita ser escrita en el entorno de pre-arranque (antes de que Windows se inicie) donde no están disponibles disposiciones de teclado distintas a la de EEUU. Por tanto, la contraseña debe ser escrita siempre usando la disposición de teclado EEUU estándar.</string>
diff --git a/Translations/Language.et.xml b/Translations/Language.et.xml
index eafc851..469ec58 100644
--- a/Translations/Language.et.xml
+++ b/Translations/Language.et.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="et" name="Eesti" en-name="Estonian" version="0.1.0" translators="Maiko Mõtsar" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="et" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Kuva salasõna</control>
     <control lang="et" key="IDC_TRAVEL_OPEN_EXPLORER">Ava haagitud konteiner &Exploreri aknas</control>
     <control lang="et" key="IDC_TRAV_CACHE_PASSWORDS">Hoia salasõnu tüürelis vahemälus</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="et" key="IDC_UNMOUNTALL">Haagi kõik lahti</control>
     <control lang="et" key="IDC_VOLUME_PROPERTIES">Konteineri atribuudid...</control>
     <control lang="et" key="IDC_VOLUME_TOOLS">Konteineri &tööriistad...</control>
     <control lang="et" key="IDC_WIPE_CACHE">Tühjenda vahemälu</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="et" key="IDD_HOTKEYS_DLG">VeraCrypt - Süsteemi kiirklahvid</control>
     <control lang="et" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="en" key="IDM_CREATE_RESCUE_DISK">Create Rescue Disk...</control>
     <control lang="et" key="IDM_CREATE_VOLUME">Loo uus konteiner...</control>
     <control lang="et" key="IDM_DEFAULT_KEYFILES">Vaikimisi võtmefailid...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="en" key="IDM_ENCRYPT_SYSTEM_DEVICE">Encrypt System Partition/Drive...</control>
     <control lang="et" key="IDM_FAQ">Korduma Kippuvad Küsimused</control>
@@ -243,6 +245,7 @@
     <control lang="et" key="IDM_UNMOUNT_VOLUME">Konteineri lahtihaakimine</control>
     <control lang="en" key="IDM_VERIFY_RESCUE_DISK">Verify Rescue Disk</control>
     <control lang="et" key="IDM_VERSION_HISTORY">Versiooni ajalugu</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="et" key="IDM_VOLUME_PROPERTIES">Konteineri atribuudid</control>
     <control lang="et" key="IDM_VOLUME_WIZARD">Konteineri loomise nõustaja</control>
     <control lang="et" key="IDM_WEBSITE">VeraCrypti kodulehekülg</control>
@@ -523,6 +526,7 @@
     <string lang="en" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">An error occurred when obtaining the system encryption status.</string>
     <string lang="en" key="INIT_SYS_ENC">Cannot initialize application components for system encryption.</string>
     <string lang="et" key="INIT_RAND">Juhunumbri generaatori initsialiseerimine ebaõnnestus!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="et" key="INIT_REGISTER">Võimetu rakendust initsialiseerima. Dialoogi klassi registreerimine ebaõnnestus.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="et" key="INTRO_TITLE">VeraCrypt konteineri loomise nõustaja</string>
@@ -535,6 +539,7 @@
     <string lang="et" key="MOUNT_BUTTON">Haagi</string>
     <string lang="et" key="NEW_VERSION_REQUIRED">Selle konteineri haakimiseks on vajalik VeraCrypti uuem versioon.</string>
     <string lang="et" key="VOL_CREATION_WIZARD_NOT_FOUND">Viga: Konteineri loomise nõustajat ei leidnud.\n\nPalun veendu, et fail 'VeraCrypt Format.exe' on kataloogis, milles on 'VeraCrypt.exe' käivitatud. Kui ei, palun taaspaigalda VeraCrypt või näita 'VeraCrypt Format.exe' asukoht kettal ja käivita see.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="et" key="NEXT">Edasi ></string>
     <string lang="et" key="FINALIZE">&Lõpeta</string>
     <string lang="en" key="INSTALL">&Install</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">This algorithm is currently not supported for system encryption.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="en" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Warning: VeraCrypt could not restore the original keyboard layout. This may cause you to enter a password incorrectly.</string>
     <string lang="en" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Error: Cannot set the keyboard layout for VeraCrypt to the standard US keyboard layout.\n\nNote that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available. Therefore, the password must always be typed using the standard US keyboard layout.</string>
diff --git a/Translations/Language.eu.xml b/Translations/Language.eu.xml
index 57431a7..51293ad 100644
--- a/Translations/Language.eu.xml
+++ b/Translations/Language.eu.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="eu" name="Euskara" en-name="Basque" version="1.0.0" translators="Ander Genua" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="eu" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Pasahitza erakutsi</control>
     <control lang="eu" key="IDC_TRAVEL_OPEN_EXPLORER">Muntatutako Bolumenak &Explorer-aren lehioak ireki</control>
     <control lang="eu" key="IDC_TRAV_CACHE_PASSWORDS">Pasahitza &gorde diskaren memorian</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="eu" key="IDC_UNMOUNTALL">&Guztiak desmuntatu</control>
     <control lang="eu" key="IDC_VOLUME_PROPERTIES">&Bolumenaren ezaugarriak...</control>
     <control lang="eu" key="IDC_VOLUME_TOOLS">Bolumenaren &Tresnak...</control>
     <control lang="eu" key="IDC_WIPE_CACHE">&Memoria ezabatu</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="eu" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Gogoko Bolumenak</control>
     <control lang="eu" key="IDD_HOTKEYS_DLG">VeraCrypt - Sistema osoaren tekla bereziak</control>
     <control lang="eu" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="eu" key="IDM_CREATE_RESCUE_DISK">Salbatze diska sortu...</control>
     <control lang="eu" key="IDM_CREATE_VOLUME">Bolumen berria sortu...</control>
     <control lang="eu" key="IDM_DEFAULT_KEYFILES">Lehenetsitako gako-fitxategiak...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="eu" key="IDM_DONATE">Orain eman...</control>
     <control lang="eu" key="IDM_ENCRYPT_SYSTEM_DEVICE">Sistemaren partizioa/diska zifratu...</control>
     <control lang="eu" key="IDM_FAQ">Maiz egindako galderak</control>
@@ -243,6 +245,7 @@
     <control lang="eu" key="IDM_UNMOUNT_VOLUME">Bolumena desmuntatu</control>
     <control lang="eu" key="IDM_VERIFY_RESCUE_DISK">Salbatze diska egiaztatu</control>
     <control lang="eu" key="IDM_VERSION_HISTORY">Bertsioen Historia</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="eu" key="IDM_VOLUME_PROPERTIES">Bolumenaren ezaugarriak</control>
     <control lang="eu" key="IDM_VOLUME_WIZARD">Bolumenak sortzeko laguntzailea</control>
     <control lang="eu" key="IDM_WEBSITE">VeraCrypt-en web orria</control>
@@ -525,6 +528,7 @@
     <string lang="eu" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Errore bat jazo da sistemaren enkripzio egoera irakurtzen ari zenean.</string>
     <string lang="eu" key="INIT_SYS_ENC">Ezin izan dira aplikazioaren osagaiak hasieratu sistema zifratzeko.</string>
     <string lang="eu" key="INIT_RAND">Ausazko zenbakien sortzailea hasieratzerakoan hutse egin du!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="eu" key="INIT_REGISTER">Ezin izan da aplikazioa hasieratu. 'Dialog Class'-a erregistratzerakoan huts egin du.</string>
     <string lang="eu" key="INIT_RICHEDIT">Errorea: Ezin izan da Rich Edit sistemaren liburutegia kargatu.</string>
     <string lang="eu" key="INTRO_TITLE">VeraCrypt Bolumenak Sortzeko Laguntzailea</string>
@@ -537,6 +541,7 @@
     <string lang="eu" key="MOUNT_BUTTON">&Muntatu</string>
     <string lang="eu" key="NEW_VERSION_REQUIRED">Bolumen hau muntazteko VeraCrypt-en bertsio berriago bat behar da.</string>
     <string lang="eu" key="VOL_CREATION_WIZARD_NOT_FOUND">Errorea: Bolumenak Sortzeko Laguntzailea ez da aurkitu.\n\nZiurta zaitez 'VeraCrypt Format.exe' fitxategia 'VeraCrypt.exe' abiatu zeneko karpeta berdinean dagoela. Ez badago, VeraCrypt berriro instalatu, edo zure diskan 'VeraCrypt Format.exe' aurkitu eta exekutatu.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="eu" key="NEXT">&Hurrengoa ></string>
     <string lang="eu" key="FINALIZE">&Bukatu</string>
     <string lang="eu" key="INSTALL">&Instalatu</string>
@@ -1036,8 +1041,8 @@
     <string lang="eu" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nAbiatze partizio gehigarria Windows instalatu aurretik kendu daiteke. Hori egitueko, hurrengo pausoak jarraitu itzazu:\n\n1) Zure Windows instalatze diska abiatu ezazu.\n\n2) Windows instalatzailearen lehioan 'Orain Instalatu' > 'Pertsonalizatua (aurreratua)' aukeratu.\n\n3) 'Unitate Aukerak' sakatu ezazu.\n\n4) Sistemaren partizio nagusia aukeratu eta ezabatu ezazu 'Ezabatu' eta 'Ados'-en klik eginez.\n\n5) 'Sist [...]
     <string lang="eu" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Kontuz: Alokatu gabeko tarte bat dago sistemaren partizioa eta haren hurrengo partizioaren artean. Ezkutuko sistema eragilea sortu eta gero ezin izango duzu tarte horretan partizio berririk egin. Bestela, ezin izango da ezkutuko sistema eragilea hasieratu (partizio berri horiek ezabatu arte).</string>
     <string lang="eu" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Algoritmo honek momentuz ez du balio sistema zifratzeko .</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="eu" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Momentuz ezin dira gako-fitxategiak erabili sistema zifratzeko.</string>
     <string lang="eu" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Kontuz: VeraCrypt-ek ezin izan du teklatua diseinu originaera leheneratu. Honek pasahitza gaizki sartzea ekar dezake.</string>
     <string lang="eu" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Errorea: Ezin da VeraCrypt-entzat teklatuaren diseinua aldatu EB teklatu estandar diseinura.\n\nOhartu zaitez pasahitza hasieraketa aurreko ingurunean (Windows hasi aurretik) sartu behar dela eta bertan EB-etako teklatu diseinuak ez daudela eskuragarri. Horregatik, pasahitza beti sartu behar da EB-etako teklatu estandarraren diseinuarekin.</string>
diff --git a/Translations/Language.fa.xml b/Translations/Language.fa.xml
index 3aa1494..221b908 100644
--- a/Translations/Language.fa.xml
+++ b/Translations/Language.fa.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="fa" name="فارسي" en-name="Persian" version="0.1.0" translators="Ali Bitazar, Rodabeh Sarmadi" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="en" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Display password</control>
     <control lang="en" key="IDC_TRAVEL_OPEN_EXPLORER">Open &Explorer window for mounted volume</control>
     <control lang="en" key="IDC_TRAV_CACHE_PASSWORDS">&Cache password in driver memory</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="en" key="IDC_UNMOUNTALL">Di&smount All</control>
     <control lang="en" key="IDC_VOLUME_PROPERTIES">&Volume Properties...</control>
     <control lang="en" key="IDC_VOLUME_TOOLS">Volume &Tools...</control>
     <control lang="en" key="IDC_WIPE_CACHE">&Wipe Cache</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="en" key="IDD_HOTKEYS_DLG">VeraCrypt - System-Wide Hot Keys</control>
     <control lang="en" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="en" key="IDM_CREATE_RESCUE_DISK">Create Rescue Disk...</control>
     <control lang="en" key="IDM_CREATE_VOLUME">Create New Volume...</control>
     <control lang="en" key="IDM_DEFAULT_KEYFILES">Default Keyfiles...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="en" key="IDM_ENCRYPT_SYSTEM_DEVICE">Encrypt System Partition/Drive...</control>
     <control lang="en" key="IDM_FAQ">Frequently Asked Questions</control>
@@ -243,6 +245,7 @@
     <control lang="en" key="IDM_UNMOUNT_VOLUME">Dismount Volume</control>
     <control lang="en" key="IDM_VERIFY_RESCUE_DISK">Verify Rescue Disk</control>
     <control lang="en" key="IDM_VERSION_HISTORY">Version History</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="en" key="IDM_VOLUME_PROPERTIES">Volume Properties</control>
     <control lang="en" key="IDM_VOLUME_WIZARD">Volume Creation Wizard</control>
     <control lang="en" key="IDM_WEBSITE">VeraCrypt Website</control>
@@ -523,6 +526,7 @@
     <string lang="en" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">An error occurred when obtaining the system encryption status.</string>
     <string lang="en" key="INIT_SYS_ENC">Cannot initialize application components for system encryption.</string>
     <string lang="en" key="INIT_RAND">Failed to initialize the random number generator!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="en" key="INIT_REGISTER">Unable to initialize the application. Failed to register the Dialog class.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="fa" key="INTRO_TITLE">جادوگر ساخت درايو</string>
@@ -535,6 +539,7 @@
     <string lang="en" key="MOUNT_BUTTON">&Mount</string>
     <string lang="en" key="NEW_VERSION_REQUIRED">A newer version of VeraCrypt is required to mount this volume.</string>
     <string lang="en" key="VOL_CREATION_WIZARD_NOT_FOUND">Error: Volume Creation Wizard not found.\n\nPlease make sure that the file 'VeraCrypt Format.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCrypt Format.exe' on your disk and run it.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="en" key="NEXT">&Next ></string>
     <string lang="en" key="FINALIZE">&Finish</string>
     <string lang="en" key="INSTALL">&Install</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">This algorithm is currently not supported for system encryption.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="en" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Warning: VeraCrypt could not restore the original keyboard layout. This may cause you to enter a password incorrectly.</string>
     <string lang="en" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Error: Cannot set the keyboard layout for VeraCrypt to the standard US keyboard layout.\n\nNote that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available. Therefore, the password must always be typed using the standard US keyboard layout.</string>
diff --git a/Translations/Language.fi.xml b/Translations/Language.fi.xml
index 66d73fd..2dc6932 100644
--- a/Translations/Language.fi.xml
+++ b/Translations/Language.fi.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="fi" name="Suomi" en-name="Finnish" version="0.1.0" translators="Matti Ruhanen" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="fi" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Näytä Salasana</control>
     <control lang="fi" key="IDC_TRAVEL_OPEN_EXPLORER">Avaa &Tutkinta Ikkuna Yhdistetyille taltioille</control>
     <control lang="fi" key="IDC_TRAV_CACHE_PASSWORDS">&Välimuistisalasana ajurin muistille</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="fi" key="IDC_UNMOUNTALL">P&oista Kaikki Yhteydet</control>
     <control lang="fi" key="IDC_VOLUME_PROPERTIES">Taltion Ominaisuu&det..</control>
     <control lang="fi" key="IDC_VOLUME_TOOLS">Taltio&n Työkalut..</control>
     <control lang="fi" key="IDC_WIPE_CACHE">Tyhjennä &Välimuisti</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="fi" key="IDD_HOTKEYS_DLG">VeraCrypt - Järjestelmän Pikanäppäimet</control>
     <control lang="fi" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="fi" key="IDM_CREATE_RESCUE_DISK">Luo Pelastuslevy..</control>
     <control lang="fi" key="IDM_CREATE_VOLUME">Luo Uusi Taltio..</control>
     <control lang="fi" key="IDM_DEFAULT_KEYFILES">Oletus Avaintiedosto..</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="fi" key="IDM_ENCRYPT_SYSTEM_DEVICE">Salaa Järjestelmän Osio/Asema..</control>
     <control lang="fi" key="IDM_FAQ">Usein Kysyttyjä Kysymyksiä</control>
@@ -243,6 +245,7 @@
     <control lang="fi" key="IDM_UNMOUNT_VOLUME">Poista Yhdistetyt Taltio</control>
     <control lang="fi" key="IDM_VERIFY_RESCUE_DISK">Tarkista Pelastuslevy</control>
     <control lang="fi" key="IDM_VERSION_HISTORY">Versio Historia</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="fi" key="IDM_VOLUME_PROPERTIES">Taltion Ominaisuudet</control>
     <control lang="fi" key="IDM_VOLUME_WIZARD">Opastettu Taltion Luonti</control>
     <control lang="fi" key="IDM_WEBSITE">VeraCryptin Nettisivut</control>
@@ -523,6 +526,7 @@
     <string lang="fi" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Virhe tapahtui kun haettiin järjestelmän salakirjoitus arvoa.</string>
     <string lang="fi" key="INIT_SYS_ENC">Sovelluksen komponentteja ei voida alustaa järjestelmän salakirjoitusta varten.</string>
     <string lang="fi" key="INIT_RAND">Satunnaisnumeron luonnin alustus epäonnistui!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="fi" key="INIT_REGISTER">Sovellusta ei pystytä alustamaan. Viestiruudun ikkunan rekisteröinti epäonnistui.</string>
     <string lang="fi" key="INIT_RICHEDIT">Virhe: Virhe ladattaessa Rich edit järjestelmä kirjastoa.</string>
     <string lang="fi" key="INTRO_TITLE">Opastettu VeraCrypt Taltion Luonti</string>
@@ -535,6 +539,7 @@
     <string lang="fi" key="MOUNT_BUTTON">Y&hdistä Laite</string>
     <string lang="fi" key="NEW_VERSION_REQUIRED">Uusi VeraCrypt versio vaaditaan jotta tämän taltion yhdistäminen on mahdollista.</string>
     <string lang="fi" key="VOL_CREATION_WIZARD_NOT_FOUND">Virhe: Taltion Luonti Velhoa ei löydetty.\n\nOle hyvä ja varmista että tiedosto 'VeraCrypt Format.exe' on hakemistossa missä 'VeraCrypt.exe' on perustettu. Jos se ei ole, asenna uudelleen VeraCrypt ohjelma, tai määritä 'VeraCrypt Format.exe' levylläsi ja aja se.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="fi" key="NEXT">&Seuraava ></string>
     <string lang="fi" key="FINALIZE">&Valmis</string>
     <string lang="fi" key="INSTALL">&Asenna</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="fi" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Varoitus: Siellä on allokoimatonta tilaa järjestelmäosion ja ensimmäisen osion takana. Kun olet luonut piilotetun käyttöjärjestelmän, sinun täytyy luoda uudet osiot tälle allokoimattomalle tilalle. Muutoin, piilotettu käyttöjärjestelmä ei ole mahdollista käynnistää (ennen kuin poistat sellaisen vasta luodun osion).</string>
     <string lang="fi" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Tämä algoritmi ei ole tuettuna järjestelmän salauksessa.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="fi" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Avaintiedostot eivät ole nykyisin tuettuna järjestelmä salaukselle.</string>
     <string lang="fi" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Varoitus: VeraCrypt ei voi palauttaa alkuperäistä näppäimistä ulkoasua. Tämä saattaa johtaa sinun antamasta väärästä salasanasta.</string>
     <string lang="fi" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Virhe: Ei voida asettaa näppäimistö ulkoasua VeraCrypt standardi US näppäin ulkoasuksi.\n\nHuomioi, että salasana täytyy kirjoittaa esikäynnistys ympäristössä (ennen kuin Windows käynnistyy) kun ei-US Windows näppäimistö ulkoasu ei ole saatavana. Siksi salasana tulee aina kirjoittaa käyttäen standardia näppäin asetusta.</string>
diff --git a/Translations/Language.fr.xml b/Translations/Language.fr.xml
index 931ea12..8face68 100644
--- a/Translations/Language.fr.xml
+++ b/Translations/Language.fr.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
-    <language langid="fr" name="Français" en-name="French" version="0.2.0" translators="Stéphane S., Olivier M." />
+    <language langid="fr" name="Français" en-name="French" version="0.3.0" translators="Stéphane S., Olivier M., Thierry T" />
     <!-- Fonts -->
     <font lang="fr" class="normal" size="11" face="default" />
     <font lang="fr" class="bold" size="13" face="Arial" />
@@ -28,15 +28,15 @@
     <control lang="fr" key="IDT_INSTALL_DESTINATION">Sélectionner ou saisir l'emplacement où vous désirez installer le programme VeraCrypt. Si le dossier spécifié n'existe pas, il sera automatiquement créé.</control>
     <control lang="fr" key="IDT_UNINSTALL_DIR">Cliquer sur 'Désinstaller' pour supprimer VeraCrypt de votre système.</control>
     <control lang="fr" key="IDC_ABORT_BUTTON">Arrêter</control>
-    <control lang="en" key="IDC_BENCHMARK">&Benchmark</control>
+    <control lang="fr" key="IDC_BENCHMARK">&Benchmark</control>
     <control lang="fr" key="IDC_CIPHER_TEST">Tester</control>
-    <control lang="en" key="IDC_DEVICE_TRANSFORM_MODE_FORMAT">Create encrypted volume and format it</control>
-    <control lang="en" key="IDC_DEVICE_TRANSFORM_MODE_INPLACE">Encrypt partition in place</control>
+    <control lang="fr" key="IDC_DEVICE_TRANSFORM_MODE_FORMAT">Créer un volume chiffré et le formater</control>
+    <control lang="fr" key="IDC_DEVICE_TRANSFORM_MODE_INPLACE">Chiffrer la partition en place</control>
     <control lang="fr" key="IDC_DISPLAY_KEYS">Afficher les clés générées (une partie)</control>
     <control lang="fr" key="IDC_DISPLAY_POOL_CONTENTS">Afficher le nombre aléatoire</control>
     <control lang="fr" key="IDC_DOWNLOAD_CD_BURN_SOFTWARE">Télécharger le logiciel de gravure de CD/DVD</control>
     <control lang="fr" key="IDC_FILE_CONTAINER">Créer un fichier conteneur chiffré</control>
-    <control lang="en" key="IDC_GB">&GB</control>
+    <control lang="fr" key="IDC_GB">&Go</control>
     <control lang="fr" key="IDC_HIDDEN_SYSENC_INFO_LINK">Plus d'infos</control>
     <control lang="fr" key="IDC_HIDDEN_VOL">Volume VeraCrypt caché </control>
     <control lang="fr" key="IDC_HIDDEN_VOL_HELP">Plus d'infos sur les volumes cachés</control>
@@ -58,8 +58,8 @@
     <control lang="fr" key="IDC_OPEN_OUTER_VOLUME">Ouvrir le volume externe</control>
     <control lang="fr" key="IDC_PAUSE">&Pause</control>
     <control lang="fr" key="IDC_QUICKFORMAT">Formatage rapide</control>
-    <control lang="fr" key="IDC_SHOW_PASSWORD">Afficher mot de passe</control>
-    <control lang="en" key="IDC_SHOW_PASSWORD_SINGLE">&Display password</control>
+    <control lang="fr" key="IDC_SHOW_PASSWORD">Afficher le mot de passe</control>
+    <control lang="fr" key="IDC_SHOW_PASSWORD_SINGLE">&Afficher le mot de passe</control>
     <control lang="fr" key="IDC_SINGLE_BOOT">Amorçage</control>
     <control lang="fr" key="IDC_STD_VOL">Volume VeraCrypt standard</control>
     <control lang="fr" key="IDC_SYSENC_HIDDEN">Caché</control>
@@ -83,7 +83,7 @@
     <control lang="fr" key="IDT_MULTI_BOOT">Sélectionner cette option s'il y a au moins deux systèmes d'exploitation installés sur cet ordinateur.\n\nPar exemple :\n- Windows 2000 et Windows XP\n- Windows XP et Windows Vista\n- Windows et Mac OS X\n- Windows et Linux\n- Windows, Linux et Mac OS X</control>
     <control lang="fr" key="IDT_NON_SYS_DEVICE">Chiffre une partition non système sur tout disque interne ou externe (ex : clé USB). Optionnellement, crée un volume caché.</control>
     <control lang="fr" key="IDT_PARTIAL_POOL_CONTENTS">Nombre aléatoire actuel (une partie)</control>
-    <control lang="en" key="IDT_PASS">Pass</control>
+    <control lang="fr" key="IDT_PASS">Passe</control>
     <control lang="fr" key="IDT_PASSWORD">Mot de passe :</control>
     <control lang="fr" key="IDT_PROGRESS">Progression :</control>
     <control lang="fr" key="IDT_RANDOM_POOL">Nb aléatoire : </control>
@@ -95,17 +95,17 @@
     <control lang="fr" key="IDT_SYS_PARTITION">Sélectionnez cette option pour chiffrer la partition où le système d'exploitation Windows en cours d'utilisation est installé.</control>
     <control lang="fr" key="IDT_WIPE_MODE">Mode de nettoyage :</control>
     <control lang="fr" key="IDCLOSE">Fermer</control>
-    <control lang="en" key="IDC_ALLOW_ESC_PBA_BYPASS">Allow pre-boot &authentication to be bypassed by pressing the Esc key (enables boot manager)</control>
+    <control lang="fr" key="IDC_ALLOW_ESC_PBA_BYPASS">Permet de contourner l'&authentification de pré-amorçage en appuyant sur la touche Esc (active le gestionnaire de démarrage)</control>
     <control lang="fr" key="IDC_AUTORUN_DISABLE">Ne rien faire</control>
     <control lang="fr" key="IDC_AUTORUN_MOUNT">Montage automatique d'un volume VeraCrypt (ci-dessous)</control>
     <control lang="fr" key="IDC_AUTORUN_START">Exécuter VeraCrypt</control>
     <control lang="fr" key="IDC_AUTO_DETECT_PKCS11_MODULE">&Détecter bibliothèque</control>
-    <control lang="en" key="IDC_BOOT_LOADER_CACHE_PASSWORD">&Cache pre-boot authentication password in driver memory (for mounting of non-system volumes)</control>
+    <control lang="fr" key="IDC_BOOT_LOADER_CACHE_PASSWORD">&Cache du mot de passe d'authentification de pré-amorçage dans le pilote mémoire (pour le montage de volumes non-système)</control>
     <control lang="fr" key="IDC_BROWSE_DIRS">Parcourir...</control>
     <control lang="fr" key="IDC_BROWSE_FILES">Parcourir...</control>
     <control lang="fr" key="IDC_CACHE">Mots de passe et fichiers clés en cache</control>
     <control lang="fr" key="IDC_CLOSE_BKG_TASK_WHEN_NOVOL">Quitter quand il n'y a aucun volume monté</control>
-    <control lang="fr" key="IDC_CLOSE_TOKEN_SESSION_AFTER_MOUNT">&Fermer la session de jeton de sécurité (log out) après un montage de volume réussi</control>
+    <control lang="fr" key="IDC_CLOSE_TOKEN_SESSION_AFTER_MOUNT">&Fermer la session de jeton de sécurité (déconnexion) après un montage de volume réussi</control>
     <control lang="fr" key="IDC_COPY_WIZARD">Inclure l'assistant de création de volume VeraCrypt</control>
     <control lang="fr" key="IDC_CREATE">Créer</control>
     <control lang="fr" key="IDC_CREATE_VOLUME">Créer un volume</control>
@@ -124,7 +124,7 @@
     <control lang="fr" key="IDC_FAVORITE_MOVE_UP">&Monter</control>
     <control lang="fr" key="IDC_FAVORITE_OPEN_EXPLORER_WIN_ON_MOUNT">Ouvrir une fenêtre de l'&Explorateur pour le volume sélectionné quand il est monté avec succès</control>
     <control lang="fr" key="IDC_FAVORITE_REMOVE">&Supprimer</control>
-    <control lang="en" key="IDC_FAV_VOL_OPTIONS_GLOBAL_SETTINGS_BOX">Global Settings</control>
+    <control lang="fr" key="IDC_FAV_VOL_OPTIONS_GLOBAL_SETTINGS_BOX">Paramètres globaux</control>
     <control lang="fr" key="IDC_HK_DISMOUNT_BALLOON_TOOLTIP">Afficher une infobulle après un démontage par raccourci réussi</control>
     <control lang="fr" key="IDC_HK_DISMOUNT_PLAY_SOUND">Jouer un son de notification système après un démontage par raccourci réussi</control>
     <control lang="fr" key="IDC_HK_MOD_ALT">Alt</control>
@@ -151,14 +151,14 @@
     <control lang="fr" key="IDC_PREF_DISMOUNT_SCREENSAVER">L'écran de veille est activé</control>
     <control lang="fr" key="IDC_PREF_FORCE_AUTO_DISMOUNT">Forcer le démontage automatique même s'il y a encore des fichiers ouverts</control>
     <control lang="fr" key="IDC_PREF_LOGON_MOUNT_DEVICES">Monter tous les volumes VeraCrypt</control>
-    <control lang="en" key="IDC_PREF_LOGON_START">Start VeraCrypt Background Task</control>
+    <control lang="fr" key="IDC_PREF_LOGON_START">Démarre la tâche de fond VeraCrypt</control>
     <control lang="fr" key="IDC_PREF_MOUNT_READONLY">Monter les volumes en lecture seule</control>
     <control lang="fr" key="IDC_PREF_MOUNT_REMOVABLE">Monter les volumes comme des médias amovibles</control>
     <control lang="fr" key="IDC_PREF_OPEN_EXPLORER">Ouvrir la fenêtre de l'Explorateur des volumes montés avec succès</control>
     <control lang="fr" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Utiliser une icône de barre des tâches différente quand il y a des volumes montés</control>
     <control lang="fr" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Vider le cache des mots de passe au démontage</control>
     <control lang="fr" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Vider le cache des mots de passe en quittant</control>
-    <control lang="en" key="IDC_PRESERVE_TIMESTAMPS">Preserve modification timestamp of file containers</control>
+    <control lang="fr" key="IDC_PRESERVE_TIMESTAMPS">Preserve les modifications d'horodatage des conteneurs de fichiers</control>
     <control lang="fr" key="IDC_RESET_HOTKEYS">Réinitialiser</control>
     <control lang="fr" key="IDC_SELECT_DEVICE">Périphérique...</control>
     <control lang="fr" key="IDC_SELECT_FILE">Fichier...</control>
@@ -167,11 +167,12 @@
     <control lang="fr" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Afficher mot de passe</control>
     <control lang="fr" key="IDC_TRAVEL_OPEN_EXPLORER">Ouvrir l'Explorateur pour le volume monté</control>
     <control lang="fr" key="IDC_TRAV_CACHE_PASSWORDS">Mot de passe en cache</control>
-	<control lang="fr" key="IDC_TRUECRYPT_MODE">Mode TrueCrypt</control>
+    <control lang="fr" key="IDC_TRUECRYPT_MODE">Mode TrueCrypt</control>
     <control lang="fr" key="IDC_UNMOUNTALL">Tout démonter</control>
     <control lang="fr" key="IDC_VOLUME_PROPERTIES">Propriétés du volume</control>
     <control lang="fr" key="IDC_VOLUME_TOOLS">Outils pour le volume</control>
     <control lang="fr" key="IDC_WIPE_CACHE">Vider le cache</control>
+    <control lang="fr" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Paramèters montage</control>
     <control lang="fr" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Volumes favoris</control>
     <control lang="fr" key="IDD_HOTKEYS_DLG">VeraCrypt - Raccourcis système</control>
     <control lang="fr" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="fr" key="IDM_CREATE_RESCUE_DISK">Créer un disque de secours...</control>
     <control lang="fr" key="IDM_CREATE_VOLUME">Créer un nouveau volume...</control>	
     <control lang="fr" key="IDM_DEFAULT_KEYFILES">Fichiers clés par défaut...</control>
+    <control lang="fr" key="IDM_DEFAULT_MOUNT_PARAMETERS">Paramètres de montage par défaut...</control>
     <control lang="fr" key="IDM_DONATE">Faire un don...</control>
     <control lang="fr" key="IDM_ENCRYPT_SYSTEM_DEVICE">Chiffrer la partition/le disque système...</control>
     <control lang="fr" key="IDM_FAQ">Foire aux questions</control>
@@ -243,6 +245,7 @@
     <control lang="fr" key="IDM_UNMOUNT_VOLUME">Démonter le volume</control>
     <control lang="fr" key="IDM_VERIFY_RESCUE_DISK">Vérifier le disque de secours</control>
     <control lang="fr" key="IDM_VERSION_HISTORY">Historique</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Agrandir un volume</control>
     <control lang="fr" key="IDM_VOLUME_PROPERTIES">Propriétés du volume</control>
     <control lang="fr" key="IDM_VOLUME_WIZARD">Assistant de création de volume</control>
     <control lang="fr" key="IDM_WEBSITE">Site web VeraCrypt</control>
@@ -250,7 +253,7 @@
     <control lang="fr" key="IDOK">OK</control>
     <control lang="fr" key="IDT_ACCELERATION_OPTIONS">Accélération matérielle</control>
     <control lang="fr" key="IDT_ASSIGN_HOTKEY">Raccourci</control>
-    <control lang="fr" key="IDT_AUTORUN">Configuration de l'autorun (autorun.inf)</control>
+    <control lang="fr" key="IDT_AUTORUN">Configuration de l'exécution automatique (autorun.inf)</control>
     <control lang="fr" key="IDT_AUTO_DISMOUNT">Démontage automatique</control>
     <control lang="fr" key="IDT_AUTO_DISMOUNT_ON">Tout démonter si :</control>
     <control lang="fr" key="IDT_BOOT_LOADER_SCREEN_OPTIONS">Options de l'écran du chargeur d'amorçage</control>
@@ -272,7 +275,7 @@
     <control lang="fr" key="IDT_PARALLELIZATION_OPTIONS">Parallélisation</control>
     <control lang="fr" key="IDT_PKCS11_LIB_PATH">Chemin de bibliothèque PKCS #11</control>
     <control lang="fr" key="IDT_PKCS5_PRF">PKCS-5 PRF :</control>
-    <control lang="en" key="IDT_NEW_PKCS5_PRF">PKCS-5 PRF:</control>
+    <control lang="fr" key="IDT_NEW_PKCS5_PRF">PKCS-5 PRF:</control>
     <control lang="fr" key="IDT_PW_CACHE_OPTIONS">Mots de passe en cache</control>
     <control lang="fr" key="IDT_SECURITY_OPTIONS">Options de sécurité</control>
     <control lang="fr" key="IDT_TASKBAR_ICON">Tâche de fond VeraCrypt</control>
@@ -283,16 +286,16 @@
     <control lang="fr" key="IDT_WINDOWS_RELATED_SETTING">Windows</control>
     <control lang="fr" key="IDC_ADD_KEYFILE_PATH">Ajouter un chemin</control>
     <control lang="fr" key="IDC_AUTO">Auto-tests</control>
-    <control lang="en" key="IDC_CONTINUE">&Continue</control>
+    <control lang="fr" key="IDC_CONTINUE">&Continuer</control>
     <control lang="fr" key="IDC_DECRYPT">Déchiffrer</control>
-    <control lang="en" key="IDC_DELETE">&Delete</control>
+    <control lang="fr" key="IDC_DELETE">&Effacer</control>
     <control lang="fr" key="IDC_ENCRYPT">Chiffrer</control>
-    <control lang="en" key="IDC_EXPORT">&Export...</control>
+    <control lang="fr" key="IDC_EXPORT">&Exporter...</control>
     <control lang="fr" key="IDC_GENERATE_AND_SAVE_KEYFILE">Générer et sauvegarder le fichier clé...</control>
     <control lang="fr" key="IDC_GENERATE_KEYFILE">Générer aléatoirement un fichier clé</control>
     <control lang="fr" key="IDC_GET_LANG_PACKS">Télécharger un fichier de langue</control>
     <control lang="fr" key="IDC_HW_AES_LABEL_LINK">AES accéléré matériellement :</control>
-    <control lang="en" key="IDC_IMPORT_KEYFILE">&Import Keyfile to Token...</control>
+    <control lang="fr" key="IDC_IMPORT_KEYFILE">&Importer un fichier clé dans un jeton...</control>
     <control lang="fr" key="IDC_KEYADD">Ajouter &fichiers...</control>
     <control lang="fr" key="IDC_KEYFILES_ENABLE_HIDVOL_PROT">Utiliser les fichiers clés</control>
     <control lang="fr" key="IDC_KEYFILES_HIDVOL_PROT">Fichiers clés...</control>
@@ -308,7 +311,7 @@
     <control lang="fr" key="IDC_PROTECT_HIDDEN_VOL">Empêcher les dommages causés en écrivant dans le volume externe</control>
     <control lang="fr" key="IDC_RESET">Réinitialiser</control>
     <control lang="fr" key="IDC_SHOW_PASSWORD_MO">Afficher mot de passe</control>
-    <control lang="en" key="IDC_TOKEN_FILES_ADD">Add &Token Files...</control>
+    <control lang="fr" key="IDC_TOKEN_FILES_ADD">Ajouter &Fichiers jeton...</control>
     <control lang="fr" key="IDC_USE_EMBEDDED_HEADER_BAK">Utiliser l'en-tête de sauvegarde incorporé dans le &volume s'il est disponible</control>
     <control lang="fr" key="IDC_XTS_MODE_ENABLED">Mode XTS</control>
     <control lang="fr" key="IDD_ABOUT_DLG">À propos de VeraCrypt</control>
@@ -319,12 +322,12 @@
     <control lang="fr" key="IDD_KEYFILE_GENERATOR">VeraCrypt - Générateur de fichier clé</control>
     <control lang="fr" key="IDD_LANGUAGE">VeraCrypt - Langue</control>
     <control lang="fr" key="IDD_MOUNT_OPTIONS">VeraCrypt - Options de montage</control>
-    <control lang="en" key="IDD_NEW_TOKEN_KEYFILE">New Security Token Keyfile Properties</control>
-    <control lang="en" key="IDD_RANDOM_POOL_ENRICHMENT">VeraCrypt - Random Pool Enrichment</control>
+    <control lang="fr" key="IDD_NEW_TOKEN_KEYFILE">Nouvelles propriétés du jeton de sécurité du fichier clé</control>
+    <control lang="fr" key="IDD_RANDOM_POOL_ENRICHMENT">VeraCrypt - Amélioration de la génération de nombres aléatoires</control>
     <control lang="fr" key="IDD_RAWDEVICES_DLG">Sélectionner une partition ou un périphérique</control>
-    <control lang="en" key="IDD_STATIC_MODELESS_WAIT_DLG">VeraCrypt</control>
-    <control lang="en" key="IDD_TOKEN_KEYFILES">Security Token Keyfiles</control>
-    <control lang="en" key="IDD_TOKEN_PASSWORD">Security token password/PIN required</control>
+    <control lang="fr" key="IDD_STATIC_MODELESS_WAIT_DLG">VeraCrypt</control>
+    <control lang="fr" key="IDD_TOKEN_KEYFILES">Jeton de sécurité des fichiers clés</control>
+    <control lang="fr" key="IDD_TOKEN_PASSWORD">Mot de passe/code PIN du jeton de sécurité requis</control>
     <control lang="fr" key="IDT_ACTIVE_LANG_PACK">Fichier de la langue en cours d'utilisation</control>
     <control lang="fr" key="IDT_BOX_BENCHMARK_INFO">La vitesse est affectée par la charge du CPU ainsi que par les caractéristiques du périphérique de stockage.\n\nCes tests ont lieu en RAM.</control>
     <control lang="fr" key="IDT_BUFFER_SIZE">Tampon :</control>
@@ -343,18 +346,18 @@
     <control lang="fr" key="IDT_PLAINTEXT_SIZE_UNIT">bits</control>
     <control lang="fr" key="IDT_POOL_CONTENTS">Réserve de nombres aléatoires</control>
     <control lang="fr" key="IDT_PRF">Mélange PRF :</control>
-    <control lang="en" key="IDT_RANDOM_POOL_ENRICHMENT_NOTE">IMPORTANT: Move your mouse as randomly as possible within this window. The longer you move it, the better. This significantly increases security. When done, click 'Continue'.</control>
+    <control lang="fr" key="IDT_RANDOM_POOL_ENRICHMENT_NOTE">IMPORTANT : Déplacez aléatoirement la souris dans cette fenêtre. Plus longtemps vous le faites, mieux c'est. Cela augmente significativement la sécurité. Lorsque vous avez terminé, cliquez sur 'Continuer'.</control>
     <control lang="fr" key="IDT_SECONDARY_KEY">Clé secondaire (hexadécimal)</control>
-    <control lang="en" key="IDT_SECURITY_TOKEN">Security token:</control>
+    <control lang="fr" key="IDT_SECURITY_TOKEN">Jeton de sécurité :</control>
     <control lang="fr" key="IDT_SORT_METHOD">Méthode de tri :</control>
     <control lang="fr" key="IDT_STATIC_MODELESS_WAIT_DLG_INFO">Merci de patienter. Cette opération peut prendre beaucoup de temps...</control>
-    <control lang="fr" key="IDT_STATIC_MODAL_WAIT_DLG_INFO">Merci de patienter...\nCette opération peut prendre beaucoup de temps et la fenêtre de VeraCrypt peut paraître figée ou ne plus répondre.</control>
+    <control lang="fr" key="IDT_STATIC_MODAL_WAIT_DLG_INFO">Merci de patienter...\nCette opération peut prendre beaucoup de temps et la fenêtre de VeraCrypt peut se figer et ne plus répondre.</control>
     <control lang="fr" key="IDT_TEST_BLOCK_NUMBER">Nombre de blocs :</control>
     <control lang="fr" key="IDT_TEST_CIPHERTEXT">Cryptogramme (hexadécimal)</control>
     <control lang="fr" key="IDT_TEST_DATA_UNIT_NUMBER">Nombre d'unité de données (hexadécimal de 64 bits, taille d'une unité = 512 octets)</control>
     <control lang="fr" key="IDT_TEST_KEY">Clé (hexadécimal)</control>
     <control lang="fr" key="IDT_TEST_PLAINTEXT">Texte en clair (hexadecimal)</control>
-    <control lang="en" key="IDT_TOKEN_KEYFILE_NAME">Keyfile name:</control>
+    <control lang="fr" key="IDT_TOKEN_KEYFILE_NAME">Nom du fichier clé : </control>
     <control lang="fr" key="IDT_XTS_MODE">Mode XTS</control>
     <control lang="fr" key="MENU_SYSTEM_ENCRYPTION">S&ystème</control>
     <control lang="fr" key="MENU_VOLUMES">&Volumes</control>
@@ -367,7 +370,7 @@
     <string lang="fr" key="ABOUTBOX">À propos...</string>
     <string lang="fr" key="ACCESSMODEFAIL">L'attribut lecture seule sur votre ancien volume n'a pas pû être changé. Vérifiez les permissions d'accès.</string>
     <string lang="fr" key="ACCESS_DENIED">Erreur : Accès refusé.\n\nLa partition à laquelle vous essayez d'accéder fait soit zéro secteur de long, soit il s'agit du périphérique d'amorçage.</string>
-    <string lang="en" key="ADMINISTRATOR">Administrator</string>
+    <string lang="fr" key="ADMINISTRATOR">Administrateur</string>
     <string lang="fr" key="ADMIN_PRIVILEGES_DRIVER">Pour charger le pilote VeraCrypt, vous avez besoin d'être connecté avec un compte ayant des privilèges d'administrateur.</string>
     <string lang="fr" key="ADMIN_PRIVILEGES_WARN_DEVICES">Notez que pour chiffrer/formater une partition/un périphérique vous devez être connecté avec un compte possédant des privilèges d'administrateur.\n\nCela ne s'applique pas aux volumes hébergeant un fichier.</string>
     <string lang="fr" key="ADMIN_PRIVILEGES_WARN_HIDVOL">Pour créer un volume caché vous devez être connecté à un compte possédant des privilèges d'administrateur.\n\nContinuer ?</string>
@@ -376,9 +379,9 @@
     <string lang="fr" key="ALREADY_MOUNTED">Le volume est déjà monté.</string>
     <string lang="fr" key="ERR_SELF_TESTS_FAILED">ATTENTION : Au moins un algorithme de chiffrement ou de hachage a échoué aux tests automatiques ! L'installation de VeraCrypt peut être corrompue.</string>
     <string lang="fr" key="ERR_NOT_ENOUGH_RANDOM_DATA">ATTENTION : Il n'y a pas assez de données dans la réserve du générateur de nombres aléatoires pour fournir la quantité de données aléatoires demandée.\n\nVous ne devriez pas continuer. Sélectionnez 'Signaler un bogue' depuis le menu d'aide.</string>
-    <string lang="fr" key="ERR_HARDWARE_ERROR">Le disque est endommagé (il y a un défaut physique dessus) ou un câble est endommagé, ou la mémoire fonctionne mal.\n\nNotez qu'il s'agit d'un problème avec votre matériel, pas avec VeraCrypt. Aussi ne rapportez PAS ceci comme un bogue/un problème dans VeraCrypt et ne demandez pas non plus d'aide pour cela dans les forums de VeraCrypt. Contactez le support technique de votre revendeur de matériel informatique pour une assistance. Merci.\n\nN [...]
-    <string lang="en" key="DEVICE_NOT_READY_ERROR">If you are accessing a drive for removable media, please make sure that a medium is inserted in the drive. The drive/medium may also be damaged (there may be a physical defect on it) or a cable may be damaged/disconnected.</string>
-    <string lang="en" key="WHOLE_DRIVE_ENCRYPTION_PREVENTED_BY_DRIVERS">Your system appears to be using custom chipset drivers containing a bug that prevents encryption of the whole system drive.\n\nPlease try updating or uninstalling any custom (non-Microsoft) chipset drivers before proceeding. If it does not help, try encrypting the system partition only.</string>
+    <string lang="fr" key="ERR_HARDWARE_ERROR">Le disque est endommagé (il y a un défaut physique dessus) ou un câble est endommagé, ou la mémoire fonctionne mal.\n\nNotez qu'il s'agit d'un problème avec votre matériel, pas avec VeraCrypt. Aussi ne rapportez PAS ceci comme un bogue/un problème dans VeraCrypt et ne demandez pas non plus d'aide pour cela dans les forums de VeraCrypt. Contactez le support technique de votre revendeur de matériel informatique pour une assistance. Merci.\n\nR [...]
+    <string lang="fr" key="DEVICE_NOT_READY_ERROR">Si vous utilisez un périphérique amovible, assurez-vous qu'un média y est inséré. Le lecteur/média peut aussi être endommagé (il peut y avoir un défaut physique) ou un câble peut être endommagé/déconnecté.</string>
+    <string lang="fr" key="WHOLE_DRIVE_ENCRYPTION_PREVENTED_BY_DRIVERS">Votre système semble utiliser un pilote de périphérique tiers (non Microsoft) contenant un bug qui empêche le chiffrement de la totalité du lecteur système.\n\nEssayer de mettre à jour ou désinstaller tout pilote de périphérique tiers avant de continuer. Si cela ne résoud pas le problème, essayez de chiffrer uniquement la partition système.</string>
     <string lang="fr" key="BAD_DRIVE_LETTER">Lettre de lecteur invalide.</string>
     <string lang="fr" key="INVALID_PATH">Emplacement invalide.</string>
     <string lang="fr" key="CANCEL">Annuler</string>
@@ -397,53 +400,53 @@
     <string lang="fr" key="DEVICE_FREE_BYTES">La taille de %hs est de %.2f octets</string>
     <string lang="fr" key="DEVICE_FREE_KB">La taille de %hs est de %.2f Ko</string>
     <string lang="fr" key="DEVICE_FREE_MB">La taille de %hs est de %.2f Mo</string>
-    <string lang="en" key="DEVICE_FREE_GB">Size of %hs is %.2f GB</string>
-    <string lang="en" key="DEVICE_FREE_TB">Size of %hs is %.2f TB</string>
-    <string lang="en" key="DEVICE_FREE_PB">Size of %hs is %.2f PB</string>
+    <string lang="fr" key="DEVICE_FREE_GB">La taille de %hs est de %.2f Go</string>
+    <string lang="fr" key="DEVICE_FREE_TB">La taille de %hs est de %.2f To</string>
+    <string lang="fr" key="DEVICE_FREE_PB">La taille de %hs est de %.2f Po</string>
     <string lang="fr" key="DEVICE_IN_USE_FORMAT">AVERTISSEMENT : La partition/le périphérique est utilisé par le système ou par une application. Formater peut conduire à une perte de données ou une instabilité du système.\n\nContinuer ?</string>
-    <string lang="en" key="DEVICE_IN_USE_INPLACE_ENC">Warning: The partition is in use by the operating system or applications. You should close any applications that might be using the partition (including antivirus software).\n\nContinue?</string>
+    <string lang="fr" key="DEVICE_IN_USE_INPLACE_ENC">AVERTISSEMENT : La partition est utilisée par le système ou une application. Vous devriez fermer toute application qui pourrait utiliser la partition (logiciel antivirus inclus).\n\nContinuer ?</string>
     <string lang="fr" key="FORMAT_CANT_DISMOUNT_FILESYS">Erreur : Le périphérique/la partition contient un système de fichiers qui n'a pas pû être démonté. Le système de fichiers peut être utilisé par le système d'exploitation. Formater le périphérique/la partition peut conduire à la corruption des données et à l'instabilité du système.\n\n Pour résoudre ce problème, il est recommandé de supprimer la partition puis de la recréer sans la formater. Pour se faire, faites comme suit : 1) Cli [...]
-    <string lang="en" key="INPLACE_ENC_CANT_LOCK_OR_DISMOUNT_FILESYS">Error: The filesystem could not be locked and/or dismounted. It may be in use by the operating system or applications (for example, antivirus software). Encrypting the partition might cause data corruption and system instability.\n\nPlease close any applications that might be using the filesystem (including antivirus software) and try again. If it does not help, please follow the below steps.</string>
+    <string lang="fr" key="INPLACE_ENC_CANT_LOCK_OR_DISMOUNT_FILESYS">Erreur : Le système de fichiers ne peut pas être vérouillé et/ou démonté. Il peut être utilisé par le système d'exploitation ou des applications (comme un logiciel antivirus). Chiffrer la partition pourrait causer une corruption de données et une instabilité du système.\n\nVeuillez fermer toute application pouvant utiliser le système de fichers et essayez à nouveau. Si cela ne résoud pas le problème, veuillez suivre le [...]
     <string lang="fr" key="DEVICE_IN_USE_INFO">AVERTISSEMENT : Certains périphériques/partitions étaient déjà en cours d'utilisation !\n\nL'ignorer peut causer des résultats indésirables.\n\nNous vous recommandons de fermer toutes les applications pouvant utiliser les périphériques/les partitions.</string>
     <string lang="fr" key="DEVICE_PARTITIONS_ERR">Le périphérique contient des partitions.\n\nFormater le périphérique peut conduire à l'instabilité du système et/ou la corruption des données. Sélectionnez une partition sur le périphérique ou enlevez toutes les partitions du périphérique pour permettre à VeraCrypt de formater en toute sécurité.</string>
-    <string lang="en" key="DEVICE_PARTITIONS_ERR_W_INPLACE_ENC_NOTE">The selected non-system device contains partitions.\n\nEncrypted device-hosted VeraCrypt volumes can be created within devices that do not contain any partitions (including hard disks and solid-state drives). A device that contains partitions can be entirely encrypted in place (using a single master key) only if it is the drive where Windows is installed and from which it boots.\n\nIf you want to encrypt the selected no [...]
-    <string lang="en" key="WHOLE_NONSYS_DEVICE_ENC_CONFIRM">Warning: If you encrypt the entire device (as opposed to encrypting only a partition on it), operating systems will consider the device as new, empty, and unformatted (as it will contain no partition table) and may spontaneously initialize the device (or ask you if you want to do so), which may damage the volume. Furthermore, it will not be possible to consistently mount the volume as favorite (e.g. when the drive number changes [...]
-    <string lang="en" key="AFTER_FORMAT_DRIVE_LETTER_WARN">IMPORTANT: Please keep in mind that this volume can NOT be mounted/accessed using the drive letter %c:, which is currently assigned to it!\n\nTo mount this volume, click 'Auto-Mount Devices' in the main VeraCrypt window (alternatively, in the main VeraCrypt window, click 'Select Device', then select this partition/device, and click 'Mount'). The volume will be mounted to a different drive letter, which you select from the list in [...]
-    <string lang="en" key="OS_NOT_SUPPORTED_FOR_NONSYS_INPLACE_ENC">In-place encryption of non-system volumes is not supported on the version of the operating system you are currently using (it is supported only on Windows Vista and later versions of Windows).\n\nThe reason is that this version of Windows does not support shrinking of a filesystem (the filesystem needs to be shrunk to make space for the volume header and backup header).</string>
-    <string lang="en" key="ONLY_NTFS_SUPPORTED_FOR_NONSYS_INPLACE_ENC">The selected partition does not appear to contain an NTFS filesystem. Only partitions that contain an NTFS filesystem can be encrypted in place.\n\nNote: The reason is that Windows does not support shrinking of other types of filesystems (the filesystem needs to be shrunk to make space for the volume header and backup header).</string>
-    <string lang="en" key="ONLY_MOUNTED_VOL_SUPPORTED_FOR_NONSYS_INPLACE_ENC">The selected partition does not appear to contain an NTFS filesystem. Only partitions that contain an NTFS filesystem can be encrypted in place.\n\nIf you want to create an encrypted VeraCrypt volume within this partition, choose the option "Create encrypted volume and format it" (instead of the option "Encrypt partition in place").</string>
-    <string lang="en" key="PARTITION_TOO_SMALL_FOR_NONSYS_INPLACE_ENC">Error: The partition is too small. VeraCrypt cannot encrypt it in place.</string>
-    <string lang="en" key="INPLACE_ENC_ALTERNATIVE_STEPS">To encrypt the data on this partition, please follow these steps:\n\n1) Create a VeraCrypt volume on an empty partition/device and then mount it.\n\n2) Copy all files from the partition that you originally wanted to encrypt to the mounted VeraCrypt volume (that has been created and mounted in step 1). That way, you will create a VeraCrypt-encrypted backup of the data.\n\n3) Create a VeraCrypt volume on the partition that you origi [...]
-    <string lang="en" key="RAW_DEV_NOT_SUPPORTED_FOR_INPLACE_ENC">VeraCrypt can in-place encrypt only a partition, a dynamic volume, or an entire system drive.\n\nIf you want to create an encrypted VeraCrypt volume within the selected non-system device, choose the option "Create encrypted volume and format it" (instead of the option "Encrypt partition in place").</string>
-    <string lang="en" key="INPLACE_ENC_INVALID_PATH">Error: VeraCrypt can in-place encrypt only a partition, a dynamic volume, or an entire system drive. Please make sure the specified path is valid.</string>
-    <string lang="en" key="CANNOT_RESIZE_FILESYS">Error: Cannot shrink the filesystem (the filesystem needs to be shrunk to make space for the volume header and backup header).\n\nPossible causes and solutions:\n\n- Not enough free space on the volume. Please make sure no other application is writing to the filesystem.\n\n- Corrupted file system. Try to check it and fix any errors (right-click the corresponding drive letter in the 'Computer' list, then select Properties > Tools > ' [...]
-    <string lang="en" key="NOT_ENOUGH_FREE_FILESYS_SPACE_FOR_SHRINK">Error: There is not enough free space on the volume and so the filesystem cannot be shrunk (the filesystem needs to be shrunk to make space for the volume header and backup header).\n\nPlease delete any redundant files and empty the Recycle Bin so as to free at least 256 KB of space and then try again. Note that due to a Windows issue, the amount of free space reported by the Windows Explorer may be incorrect until the  [...]
-    <string lang="fr" key="DISK_FREE_BYTES">L'espace libre sur le disque %hs is %.2f octets.</string>
-    <string lang="en" key="DISK_FREE_KB">Free space on drive %hs is %.2f KB</string>
-    <string lang="en" key="DISK_FREE_MB">Free space on drive %hs is %.2f MB</string>
-    <string lang="en" key="DISK_FREE_GB">Free space on drive %hs is %.2f GB</string>
-    <string lang="en" key="DISK_FREE_TB">Free space on drive %hs is %.2f TB</string>
-    <string lang="en" key="DISK_FREE_PB">Free space on drive %hs is %.2f PB</string>
+    <string lang="fr" key="DEVICE_PARTITIONS_ERR_W_INPLACE_ENC_NOTE">Le lecteur sélectionné contient des partitions non-systèmes.\n\nLes volumes VeraCrypt peuvent être créés sur un lecteur ne contenant pas de partitions (cela inclut les disques durs et les SSD). Un lecteur contenant des partitions peut être entièrement chiffré (en utilisant une clé maître) seulement si c'est le lecteur où est installé Windows et qu'il est bootable.\n\nSi vous voulez chiffrer le lecteur non-système sélect [...]
+    <string lang="fr" key="WHOLE_NONSYS_DEVICE_ENC_CONFIRM">AVERTISSEMENT : Si vous chiffrez complètement un lecteur (par opposition au chiffrage d'une partition sur celui-ci), le système d'exploitation considérera le lecteur comme nouveau, vide, et non formatté (comme s'il ne contenait pas de table de partition) et pourrait spontanément l'initialiser (ou vous demander si vous voulez le faire), ce qui pourrait endommager le volume. En outre, il ne sera pas toujours possible de monter le  [...]
+    <string lang="fr" key="AFTER_FORMAT_DRIVE_LETTER_WARN">IMPORTANT : Gardez à l'esprit que ce volume ne peut pas être monté ou accessible en utilisant l'unité logique %c: qui lui est actuellement assigné !\n\nPour monter ce volume, cliquez sur 'Montage automatique des lecteurs' dans la fenêtre principale de VeraCrypt (sinon, dans la fenêtre principale de VeraCrypt, cliquez 'Selectionner un lecteur', choisissez le lecteur/partition, et cliquez sur 'Monter'). Ce volume sera monté sur une [...]
+    <string lang="fr" key="OS_NOT_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Le chiffrement sur place des volumes non-système n'est pas supporté par la version du système d'exploitation que vous utilisez (il est pris en charge uniquement sur Windows Vista et les versions ultérieures de Windows).\n\nLa raison est que cette version de Windows ne supporte pas la réduction du système de fichiers (le système de fichiers doit être réduit pour faire place à l'en-tête de volume et l'en-tête de sauvegarde [...]
+    <string lang="fr" key="ONLY_NTFS_SUPPORTED_FOR_NONSYS_INPLACE_ENC">La partition sélectionnée ne semble pas contenir un système de fichiers NTFS. Seules les partitions qui contiennent un système de fichiers NTFS peuvent être cryptées sur place.\n\nRemarque : la raison est que Windows ne supporte pas la réduction des autres types de systèmes de fichiers (le système de fichiers doit être rétréci pour faire place à l'en-tête de volume et l'en-tête de sauvegarde).</string>
+    <string lang="fr" key="ONLY_MOUNTED_VOL_SUPPORTED_FOR_NONSYS_INPLACE_ENC">La partition sélectionnée ne semble pas contenir un système de fichiers NTFS. Seules les partitions qui contiennent un système de fichiers NTFS peuvent être chiffrées sur place.\n\nSi vous souhaitez créer un volume chiffré de VeraCrypt dans cette partition, choisissez l'option « Créer le volume chiffré et formatez-le » (au lieu de l'option "Chiffrer la partition en place").</string>
+    <string lang="fr" key="PARTITION_TOO_SMALL_FOR_NONSYS_INPLACE_ENC">Erreur : La partition est trop petite. VeraCrypt ne peut pas la chiffrer.</string>
+    <string lang="fr" key="INPLACE_ENC_ALTERNATIVE_STEPS">Pour chiffrer les données sur cette partition, suivez ces étapes : \n\n1) Créez un volume VeraCrypt sur un lecteur/partition vide, puis montez-le. \n\n2) Copiez tous les fichiers de la partition que vous avez initialement voulu chiffrer vers le volume VeraCrypt qui a été créé et monté à l'étape 1). De cette façon, vous allez créer une sauvegarde chiffrée VeraCrypt des données.\n\n3) Créez un volume VeraCrypt sur la partition que v [...]
+    <string lang="fr" key="RAW_DEV_NOT_SUPPORTED_FOR_INPLACE_ENC">VeraCrypt peut uniquement chiffrer une partition en place, un volume dynamique, ou un lecteur complet.\n\nSi vous souhaitez créer un volume chiffré VeraCrypt sur le lecteur non système sélectionné, choisissez l'option « Créez le volume chiffré et formatez-le » (au lieu de l'option "Chiffrer la partition en place").</string>
+    <string lang="fr" key="INPLACE_ENC_INVALID_PATH">Erreur : VeraCrypt peut uniquement chiffrer une partition, un volume dynamique ou un lecteur complet. Assurez-vous que le chemin d'accès spécifié est valide.</string>
+    <string lang="fr" key="CANNOT_RESIZE_FILESYS">Erreur : Impossible de réduire le système de fichiers (le système de fichiers doit être réduit pour libérer de l'espace pour l'en-tête de volume et l'en-tête de sauvegarde).\n\nPossible causes et solutions : \n\n- Il n'y a pas assez d'espace libre sur le volume. Assurez-vous qu'aucune autre application n'écrit sur le système de fichiers.\n\n- Le système de fichiers est corrompu. Essayez de vérifier et de corriger les erreurs (cliquez avec [...]
+    <string lang="fr" key="NOT_ENOUGH_FREE_FILESYS_SPACE_FOR_SHRINK">Erreur : Il n'y a pas suffisamment d'espace libre sur le volume et donc le système de fichiers ne peut pas être réduit (le système de fichiers doit être réduit pour libérer de l'espace pour l'en-tête de volume et l'en-tête de sauvegarde).\n\nSupprimez tous les fichiers redondants et videz la corbeille afin de libérer au moins 256 Ko d'espace et puis essayez à nouveau. Notez qu'en raison d'un problème de Windows, la quan [...]
+    <string lang="fr" key="DISK_FREE_BYTES">L'espace libre sur le disque %hs est %.2f octets.</string>
+    <string lang="fr" key="DISK_FREE_KB">L'espace libre sur le disque %hs est %.2f Ko</string>
+    <string lang="fr" key="DISK_FREE_MB">L'espace libre sur le disque %hs est %.2f Mo</string>
+    <string lang="fr" key="DISK_FREE_GB">L'espace libre sur le disque %hs est %.2f Go</string>
+    <string lang="fr" key="DISK_FREE_TB">L'espace libre sur le disque %hs est %.2f To</string>
+    <string lang="fr" key="DISK_FREE_PB">L'espace libre sur le disque %hs est %.2f Po</string>
     <string lang="fr" key="DRIVELETTERS">Impossible d'obtenir les lettres de lecteur disponibles.</string>
     <string lang="fr" key="DRIVER_NOT_FOUND">Erreur : Le pilote VeraCrypt est introuvable.\n\nCopiez les fichiers 'veracrypt.sys' et 'veracrypt-x64.sys' dans le répertoire où se trouve l'application principale de VeraCrypt (VeraCrypt.exe).</string>
-    <string lang="en" key="DRIVER_VERSION">Error: An incompatible version of the VeraCrypt driver is currently running.\n\nIf you are trying to run VeraCrypt in portable mode (i.e. without installing it) and a different version of VeraCrypt is already installed, you must uninstall it first (or upgrade it using the VeraCrypt installer). To uninstall it, follow these steps: On Windows Vista or later, select 'Start Menu' > Computer > 'Uninstall or change a program' > VeraCrypt > [...]
+    <string lang="fr" key="DRIVER_VERSION">Erreur : Une version incompatible du pilote VeraCrypt est actuellement en cours d'exécution.\n\nSi vous essayez d'exécuter VeraCrypt en mode portable (c'est-à-dire sans l'installer) et qu'une autre version de VeraCrypt est déjà installé, vous devez tout d'abord la désinstaller (ou la mettre à niveau à l'aide de l'installateur de VeraCrypt). Pour la désinstaller, procédez comme suit : sur Windows Vista ou une version ultérieure, sélectionnez « Me [...]
     <string lang="fr" key="ERR_CIPHER_INIT_FAILURE">Erreur : L'initialisation du chiffrement a échoué.</string>
     <string lang="fr" key="ERR_CIPHER_INIT_WEAK_KEY">Erreur : Clé de chiffrement faible détectée ! Essayez à nouveau.</string>
-    <string lang="en" key="EXCEPTION_REPORT">A critical error has occurred and VeraCrypt must be terminated. If this is caused by a bug in VeraCrypt, we would like to fix it. To help us, you can send us an automatically generated error report containing the following items:\n\n- Program version\n- Operating system version\n- Type of CPU\n- VeraCrypt component name\n- Checksum of VeraCrypt executable\n- Symbolic name of dialog window\n- Error category\n- Error address\n- VeraCrypt call st [...]
-    <string lang="en" key="EXCEPTION_REPORT_EXT">A critical error has occurred in your system, which requires VeraCrypt to be terminated.\n\nNote that this error has not been caused by VeraCrypt (so the VeraCrypt developers cannot fix it). Please, check your system for possible problems (e.g., system configuration, network connection, failing hardware components).</string>
-    <string lang="en" key="EXCEPTION_REPORT_EXT_FILESEL">A critical error has occurred in your system, which requires VeraCrypt to be terminated.\n\nIf this problem persists, you may want to try disabling or uninstalling applications that could potentially be causing this issue, such as antivirus or Internet security software, system "enhancers", "optimizers" or "tweakers", etc. If it does not help, you may want to try reinstalling your operating system (this problem may also be caused b [...]
+    <string lang="fr" key="EXCEPTION_REPORT">Une erreur critique s'est produite et VeraCrypt doit s'arrêter. Si cela est dû à un bug dans VeraCrypt, nous voudrions le corriger. Pour nous aider, vous pouvez nous envoyer un rapport d'erreur généré automatiquement contenant les éléments suivants : \n\n- La version du programme\n- La version du système d'exploitation\n- Le type de CPU\n - Le nom du composant VeraCrypt\n- La somme de contrôle de l'exécutable VeraCrypt\n- Le nom symbolique de  [...]
+    <string lang="fr" key="EXCEPTION_REPORT_EXT">Une erreur critique s'est produite dans votre système, qui nécessite l'arrêt de VeraCrypt.\n\nNotez que cette erreur n'a pas été causée par  VeraCrypt (les développeurs de VeraCrypt ne peuvent donc pas la corriger). Veuillez vérifier les causes possibles sur votre système (p. ex., configuration du système, la connexion réseau, faute de composants matériels).</string>
+    <string lang="fr" key="EXCEPTION_REPORT_EXT_FILESEL">Une erreur critique s'est produite dans votre système, qui nécessite l'arrêt de VeraCrypt.\n\nSi ce problème persiste, vous pouvez essayer de désactiver ou désinstaller les applications qui pourraient potentiellement être l'origine de ce problème, tels que les antivirus ou les logiciels de sécurité Internet, applications d'optimisation, etc.. Si cela ne résoud pas le problème, vous pouvez essayez de réinstaller votre système d'expl [...]
     <string lang="fr" key="EXCEPTION_REPORT_TITLE">Erreur critique VeraCrypt</string>
-    <string lang="en" key="SYSTEM_CRASHED_ASK_REPORT">VeraCrypt detected that the operating system recently crashed. There are many potential reasons why the system could have crashed (for example, a failing hardware component, a bug in a device driver, etc.)\n\nDo you want VeraCrypt to check whether a bug in VeraCrypt could have caused the system crash?</string>
-    <string lang="en" key="ASK_KEEP_DETECTING_SYSTEM_CRASH">Do you want VeraCrypt to continue detecting system crashes?</string>
-    <string lang="en" key="NO_MINIDUMP_FOUND">VeraCrypt found no system crash minidump file.</string>
+    <string lang="fr" key="SYSTEM_CRASHED_ASK_REPORT">VeraCrypt a détecté que le système d'exploitation s'est récemment arrêté de façpn inattendue. Plusieurs raisons sont possibles (par exemple, une panne d'un composant matériel, un bug dans un pilote de périphérique, etc.)\n\nVoulez-vous que VeraCrypt vérifie si un bug dans VeraCrypt aurait pu causer la panne du système ?</string>
+    <string lang="fr" key="ASK_KEEP_DETECTING_SYSTEM_CRASH">Voulez-vous que VeraCrypt continue de détecter les crashs du système ?</string>
+    <string lang="fr" key="NO_MINIDUMP_FOUND">VeraCrypt n'a pas trouvé le fichier crash système minidump.</string>
     <string lang="fr" key="ASK_DELETE_KERNEL_CRASH_DUMP">Voulez-vous supprimer le fichier de vidage de panne Windows pour libérer de l'espace disque ?</string>
     <string lang="fr" key="ASK_DEBUGGER_INSTALL">Pour analyser la panne système, VeraCrypt a d'abord besoin d'installer Microsoft Debugging Tools pour Windows.\n\nAprès avoir cliqué sur OK, l'installateur Windows va télécharger le paquetage d'installation Microsoft Debugging Tools (16 Mo) depuis un serveur Microsoft et l'installer (l'installateur Windows sera transmis à l'URL du serveur Microsoft depuis le serveur de veracrypt.org, ce qui assure le bon fonctionnement de cette procédure m [...]
-    <string lang="en" key="SYSTEM_CRASH_ANALYSIS_INFO">After you click OK, VeraCrypt will analyze the system crash. This may take up to several minutes.</string>
-    <string lang="en" key="DEBUGGER_NOT_FOUND">Please make sure the environment variable 'PATH' includes the path to 'kd.exe' (Kernel Debugger).</string>
-    <string lang="en" key="SYSTEM_CRASH_NO_VERACRYPT">It appears that VeraCrypt most likely did not cause the system crash. There are many potential reasons why the system could have crashed (for example, a failing hardware component, a bug in a device driver, etc.)</string>
-    <string lang="en" key="SYSTEM_CRASH_UPDATE_DRIVER">Results of the analysis indicate that updating the following driver might solve this issue: </string>
-    <string lang="en" key="SYSTEM_CRASH_REPORT">To help us determine whether there is a bug in VeraCrypt, you can send us an automatically generated error report containing the following items:\n- Program version\n- Operating system version\n- Type of CPU\n- Error category\n- Driver name and version\n- System call stack\n\nIf you select 'Yes', the following URL (which contains the entire error report) will be opened in your default Internet browser.</string>
-    <string lang="en" key="ASK_SEND_ERROR_REPORT">Do you want to send us the above error report?</string>
+    <string lang="fr" key="SYSTEM_CRASH_ANALYSIS_INFO">Après que vous ayez cliqué sur OK, VeraCrypt analisera la panne système. Cela peut prendre plusieurs minutes.</string>
+    <string lang="fr" key="DEBUGGER_NOT_FOUND">Assurez-vous que la variable d'environnement 'PATH' inclus le chemin d'accès à 'kd.exe' (debugger du noyau).</string>
+    <string lang="fr" key="SYSTEM_CRASH_NO_VERACRYPT">Il semble que VeraCrypt n'a probablement pas causé l'arrêt inattendu du système. Plusieurs autres raisons sont possibles (par exemple, un panne d'un  composant matériel, un bug dans un pilote de périphérique, etc.)</string>
+    <string lang="fr" key="SYSTEM_CRASH_UPDATE_DRIVER">Les résultats de l'analyse indiquent que la mise à jour du pilote suivant pourrait résoudre ce problème :</string>
+    <string lang="fr" key="SYSTEM_CRASH_REPORT">Pour nous aider à déterminer s'il y a un bug dans VeraCrypt, vous pouvez nous envoyer un rapport d'erreur généré automatiquement contenant les éléments suivants : \n\n- La version du programme\n- La version du système d'exploitation\n- Le type de CPU\n - Le nom du composant VeraCrypt\n- La somme de contrôle de l'exécutable VeraCrypt\n- Le nom symbolique de la fenêtre de dialogue\n- La catégorie d'erreur\n- L'adresse de l'erreur\n- La pile d [...]
+    <string lang="fr" key="ASK_SEND_ERROR_REPORT">Voulez-vous nous faire parvenir le rapport d'erreur ci-dessus ?</string>
     <string lang="fr" key="ENCRYPT">&Chiffrer</string>
     <string lang="fr" key="DECRYPT">&Déchiffrer</string>
     <string lang="fr" key="PERMANENTLY_DECRYPT">&Déchiffrer de façon permanente</string>
@@ -451,11 +454,11 @@
     <string lang="fr" key="EXT_PARTITION">Créez un lecteur logique pour cette partition étendue puis essayez à nouveau.</string>
     <string lang="fr" key="FILE_HELP">Un volume VeraCrypt peut résider dans un fichier (appelé conteneur VeraCrypt), qui peut résider dans un disque dur, une clé USB, etc. Un conteneur VeraCrypt est comme un fichier normal (il peut par exemple être déplacé ou supprimé comme tout autre fichier). Cliquez sur "Fichier..." pour choisir un nom de fichier pour le conteneur et pour sélectionner l'emplacement où vous souhaitez que le conteneur soit créé.\n\nATTENTION : Si vous sélectionnez un fi [...]
     <string lang="fr" key="FILE_HELP_HIDDEN_HOST_VOL">Sélectionnez l'emplacement du volume externe à créer (le volume caché sera créé par la suite dans le volume externe).\n\nUn volume VeraCrypt peut résider dans un fichier (appelé conteneur VeraCrypt), qui peut résider dans un disque dur, une clé USB, etc. Un conteneur VeraCrypt peut être déplacé ou supprimé comme tout autre fichier. Cliquez sur "Fichier..." pour choisir un nom de fichier pour le conteneur et pour sélectionner l'emplace [...]
-    <string lang="en" key="DEVICE_HELP">Encrypted device-hosted VeraCrypt volumes can be created within partitions on hard disks, solid-state drives, USB memory sticks, and on any other supported storage devices. Partitions can also be encrypted in place.\n\nIn addition, encrypted device-hosted VeraCrypt volumes can be created within devices that do not contain any partitions (including hard disks and solid-state drives).\n\nNote: A device that contains partitions can be entirely encrypt [...]
-    <string lang="en" key="DEVICE_HELP_NO_INPLACE">A device-hosted VeraCrypt volume can be created within a hard disk partition, solid-state drive, USB memory stick, and other storage devices.\n\nWARNING: Note that the partition/device will be formatted and all data currently stored on it will be lost.</string>
+    <string lang="fr" key="DEVICE_HELP">Des volumes VeraCrypt chiffrés peuvent être créés sur des partitions sur des disques durs, SSD, clés USB et sur d'autres périphériques de stockage. Les partitions peuvent également être chiffrées sur place.\n\nEn plus, des volumes chiffrés VeraCrypt peuvent être créés sur des dispositifs qui ne contiennent aucune partition (y compris les disques durs et SSD drives).\n\nRemarque : un dispositif qui contient des partitions peut être entièrement chiff [...]
+    <string lang="fr" key="DEVICE_HELP_NO_INPLACE">Un volume VeraCrypt peut être créé sur une partition d'un disque dur, SSD, clé USB et autres périphériques.\n\nWARNING stockage : Notez que le lecteur/partition sera formaté et toutes les données actuellement stockées dessus seront perdues.</string>
     <string lang="fr" key="DEVICE_HELP_HIDDEN_HOST_VOL">\nSélectionnez l'emplacement du volume externe à créer (le volume caché sera créé par la suite dans le volume externe).\n\nLes volumes externes peuvent être créés dans des partitions de disques durs, SSD, clés USB, et dans tout autre dispositif de stockage supporté. Les volumes externes peuvent aussi être créés dans des dispositifs qui ne contiennent aucune partition (y compris disques durs et SSD).\n\nATTENTION : Notez que la parti [...]
     <string lang="fr" key="FILE_HELP_HIDDEN_HOST_VOL_DIRECT">Sélectionnez l'emplacement du volume VeraCrypt dans lequel vous désirez créer un volume caché.</string>
-    <string lang="en" key="FILE_IN_USE">WARNING: The host file/device is already in use!\n\nIgnoring this can cause undesired results including system instability. All applications that might be using the host file/device (for example, antivirus or backup applications) should be closed before mounting the volume.\n\nContinue mounting?</string>
+    <string lang="fr" key="FILE_IN_USE">AVERTISSEMENT : Le fichier hôte/périphérique est déjà utilisé!\n\nIgnorer cet avertissement peut provoquer des résultats indésirés dont l'instabilité du système. Toutes les applications susceptibles d'utiliser le fichier hôte/périphérique (par exemple, les applications antivirus ou de sauvegarde) doivent être fermées avant de monter le volume.\n\nContinuer ?</string>
     <string lang="fr" key="FILE_IN_USE_FAILED">Erreur : Impossible de monter le volume. Le fichier hôte est déjà en cours d'utilisation. Essayer de le monter sans un accès exclusif a aussi échoué.</string>
     <string lang="fr" key="FILE_OPEN_FAILED">Le fichier n'a pas pû être ouvert.</string>
     <string lang="fr" key="FILE_TITLE">Emplacement du volume</string>
@@ -464,28 +467,28 @@
     <string lang="fr" key="FILESYS_PAGE_HELP_EXPLANATION">Selon votre choix ci-dessus, VeraCrypt choisira un système de fichiers qui convient pour le volume VeraCrypt (vous pourrez sélectionner un système de fichiers lors de la prochaine étape).</string>
     <string lang="fr" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL">Comme vous créez un volume externe, vous devriez choisir 'Non'. Si vous choisissez 'Oui', le système de fichiers par défaut sera NTFS, qui ne convient pas aussi bien que FAT pour les volumes externes (par exemple la taille maxi pour le volume caché sera plus grande de façon significative si le volume externe est formaté en FAT). Normalement FAT est le choix par défaut pour les deux types de volume (caché, et normal - ainsi  [...]
     <string lang="fr" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL_CONFIRM">Êtes-vous sûr de vouloir choisir 'Oui' ?</string>
-    <string lang="en" key="DEVICE_TRANSFORM_MODE_PAGE_TITLE">Volume Creation Mode</string>
-    <string lang="en" key="DEVICE_TRANSFORM_MODE_PAGE_FORMAT_HELP">This is the fastest way to create a partition-hosted or device-hosted VeraCrypt volume (in-place encryption, which is the other option, is slower because content of each sector has to be first read, encrypted, and then written). Any data currently stored on the selected partition/device will be lost (the data will NOT be encrypted; it will be overwritten with random data). If you want to encrypt existing data on a partiti [...]
-    <string lang="en" key="DEVICE_TRANSFORM_MODE_PAGE_INPLACE_HELP">The entire selected partition and all data stored on it will be encrypted in place. If the partition is empty, you should choose the other option (the volume will be created much faster).</string>
-    <string lang="fr" key="NOTE_BEGINNING">Note : </string>
+    <string lang="fr" key="DEVICE_TRANSFORM_MODE_PAGE_TITLE">Mode création de volume</string>
+    <string lang="fr" key="DEVICE_TRANSFORM_MODE_PAGE_FORMAT_HELP">C'est le moyen le plus rapide pour créer un volume VeraCrypt hébergé sur une partition ou sur un périphérique (le chiffrage sur place, qui est l'autre option, est plus lent parce que le contenu de chaque secteur doit être d'abord lu, chiffré puis écrit). Toutes les données actuellement stockées sur la partition/périphérique sélectionné seront perdues (les données ne seront pas chiffrées ; elles seront remplacées par des d [...]
+    <string lang="fr" key="DEVICE_TRANSFORM_MODE_PAGE_INPLACE_HELP">La partition sélectionnée et toutes les données stockées dessus seront chiffrées sur place. Si la partition est vide, vous deriez choisir l'autre option (le volume sera créé beaucoup plus vite).</string>
+    <string lang="fr" key="NOTE_BEGINNING">Remarque : </string>
     <string lang="fr" key="RESUME">&Reprendre</string>
     <string lang="fr" key="DEFER">&Différer</string>
     <string lang="fr" key="START">&Démarrer</string>
     <string lang="fr" key="CONTINUE">&Continuer</string>
     <string lang="fr" key="FORMAT">&Formater</string>
-    <string lang="en" key="WIPE">&Wipe</string>
+    <string lang="fr" key="WIPE">&Effacer</string>
     <string lang="fr" key="FORMAT_ABORT">Abandonner le formatage ?</string>
     <string lang="fr" key="SHOW_MORE_INFORMATION">Afficher plus d'infos</string>
     <string lang="fr" key="DO_NOT_SHOW_THIS_AGAIN">Ne plus afficher</string>
-    <string lang="en" key="WIPE_FINISHED">The content of the partition/device has been successfully erased.</string>
-    <string lang="en" key="WIPE_FINISHED_DECOY_SYSTEM_PARTITION">The content of the partition where the original system (of which the hidden system is a clone) resided has been successfully erased.</string>
-    <string lang="en" key="DECOY_OS_VERSION_WARNING">Please make sure the version of Windows you are going to install (on the wiped partition) is the same as the version of Windows you are currently running. This is required due to the fact that both systems will share a common boot partition.</string>
-    <string lang="en" key="SYSTEM_ENCRYPTION_FINISHED">The system partition/drive has been successfully encrypted.\n\nNote: If there are non-system VeraCrypt volumes that you need to have mounted automatically every time Windows starts, you can set it up by mounting each of them and selecting 'Favorites' > 'Add Mounted Volume to System Favorites').</string>
+    <string lang="fr" key="WIPE_FINISHED">Le contenu de la partition/lecteur a été effacé avec succès.</string>
+    <string lang="fr" key="WIPE_FINISHED_DECOY_SYSTEM_PARTITION">Le contenu de la partition où le système d'origine résidait (pour lequel le système caché est un clone) a été nettoyée avec succès.</string>
+    <string lang="fr" key="DECOY_OS_VERSION_WARNING">Assurez-vous que la version de Windows que vous prévoyez d'installer (sur la partition nettoyée) est identique à la version de Windows que vous utilisez actuellement. C'est nécessaire car les deux systèmes seront partageront la même partition de démarrage.</string>
+    <string lang="fr" key="SYSTEM_ENCRYPTION_FINISHED">Le lecteur/partition système a été chiffré avec succès.\n\nRemarque : S'il y a des volumes VeraCrypt non-système devant être montés automatiquement à chaque démarrage de Windows, vous pouvez le configurer en montant chacun d'entre eux et en sélectionnant "Favoris">"Ajouter le volume monté aux  favoris système").</string>
     <string lang="fr" key="SYSTEM_DECRYPTION_FINISHED">La partition/le disque système a été déchiffré avec succès.</string>
     <string lang="fr" key="FORMAT_FINISHED_HELP">\n\nLe volume VeraCrypt a été créé et il est prêt à l'emploi. Pour créer un autre volume VeraCrypt, cliquez sur 'Suivant'. Sinon 'Quitter'.</string>
-    <string lang="en" key="SYSENC_HIDDEN_VOL_FORMAT_FINISHED_HELP">\n\nThe hidden VeraCrypt volume has been successfully created (the hidden operating system will reside within this hidden volume).\n\nClick Next to continue.</string>
-    <string lang="en" key="NONSYS_INPLACE_ENC_FINISHED_TITLE">Volume Fully Encrypted</string>
-    <string lang="en" key="NONSYS_INPLACE_ENC_FINISHED_INFO">IMPORTANT: TO MOUNT THIS NEWLY CREATED VERACRYPT VOLUME AND TO ACCESS DATA STORED IN IT, CLICK 'Auto-Mount Devices' IN THE MAIN VERACRYPT WINDOW. After you enter the correct password (and/or supply correct keyfiles), the volume will be mounted to the drive letter you select from the list in the main VeraCrypt window (and you will be able to access the encrypted data via the selected drive letter).\n\nPLEASE REMEMBER OR WRITE DO [...]
+    <string lang="fr" key="SYSENC_HIDDEN_VOL_FORMAT_FINISHED_HELP">\n\nLe volume caché VeraCrypt a été créé avec succès (le système d'exploitation caché résidera sur ce volume).\n\nCliquez sur Suivant pour continuer.</string>
+    <string lang="fr" key="NONSYS_INPLACE_ENC_FINISHED_TITLE">Volume complètement chiffré</string>
+    <string lang="fr" key="NONSYS_INPLACE_ENC_FINISHED_INFO">IMPORTANT : POUR MONTER CE VOLUME VERACRYPT NOUVELLEMENT CREE ET ACCEDER AUX DONNEES STOCKEES DESSUS, cliquez sur « Montage automatique des périphériques » DAN LA FENETRE PRINCIPALE DE VERACRYPT. Après avoir entré le bon mot de passe (et/ou fourni le bon fichier clé), le volume sera monté sur l'unité logique que vous avez sélectionné dans la liste de la fenêtre principale de VeraCrypt (et vous serez en mesure d'accéder aux donn [...]
     <string lang="fr" key="FORMAT_FINISHED_INFO">Le volume VeraCrypt a été créé avec succès.</string>
     <string lang="fr" key="FORMAT_FINISHED_TITLE">Volume créé</string>
     <string lang="fr" key="FORMAT_HELP">IMPORTANT : Déplacez votre souris dans cette fenêtre aussi aléatoirement que possible. Plus longtemps vous la bougez, mieux c'est. Cela accroît significativement la force cryptographique des clés de chiffrement. Puis cliquez sur 'Formater' pour créer le volume.</string>
@@ -493,48 +496,50 @@
     <string lang="fr" key="FORMAT_HIDVOL_HOST_TITLE">Formatage du volume externe</string>
     <string lang="fr" key="FORMAT_HIDVOL_TITLE">Formatage du volume caché</string>
     <string lang="fr" key="FORMAT_TITLE">Formatage du volume</string>
-    <string lang="fr" key="HELP_READER_ERROR">Adobe Reader (ou un autre outil compatible) est nécessaire pour afficher ou imprimer le guide de l'utilsateur. Adobe Reader (gratuitiel) peut être téléchargé sur : www.adobe.fr\n\nVoulez-vous voir la documentation en ligne à la place ?</string>
+    <string lang="fr" key="HELP_READER_ERROR">Adobe Reader (ou un autre outil compatible) est nécessaire pour afficher ou imprimer le guide de l'utilsateur. Adobe Reader (gratuitiel) peut être téléchargé sur : www.adobe.com/fr\n\nVoulez-vous voir la documentation en ligne à la place ?</string>
     <string lang="fr" key="HIDDEN_VOL_WIZARD_MODE_NORMAL_HELP">Si vous sélectionnez cette option, l'assistant vous aidera d'abord à créer un volume VeraCrypt normal puis un volume VeraCrypt caché à l'intérieur. Les utilisateurs inexpérimentés devraient toujours sélectionner cette option.</string>
     <string lang="fr" key="HIDDEN_VOL_WIZARD_MODE_DIRECT_HELP">Si vous sélectionnez cette option, vous créerez un volume caché dans un volume VeraCrypt existant. Il sera supposé que vous avez déjà créé un volume VeraCrypt prêt à héberger un volume caché.</string>
     <string lang="fr" key="HIDDEN_VOL_WIZARD_MODE_TITLE">Mode création de volume</string>
     <string lang="fr" key="HIDVOL_FORMAT_FINISHED_TITLE">Volume caché créé</string>
-    <string lang="en" key="HIDVOL_FORMAT_FINISHED_HELP">The hidden VeraCrypt volume has been successfully created and is ready for use. If all the instructions have been followed and if the precautions and requirements listed in the section "Security Requirements and Precautions Pertaining to Hidden Volumes" in the VeraCrypt User's Guide are followed, it should be impossible to prove that the hidden volume exists, even when the outer volume is mounted.\n\nWARNING: IF YOU DO NOT PROTECT T [...]
-    <string lang="en" key="FIRST_HIDDEN_OS_BOOT_INFO">You have started the hidden operating system. As you may have noticed, the hidden operating system appears to be installed on the same partition as the original operating system. However, in reality, it is installed within the partition behind it (in the hidden volume). All read and write operations are being transparently redirected from the original system partition to the hidden volume.\n\nNeither the operating system nor applicati [...]
+    <string lang="fr" key="HIDVOL_FORMAT_FINISHED_HELP">Le volume caché VeraCrypt a été créé avec succès et est prêt à l'emploi. Si toutes les instructions ont été suivies et si les précautions et les exigences indiquées dans la section « exigences de sécurité et précautions relatives aux volumes cachés » du Guide de l'utilisateur VeraCrypt sont suivies, il devrait être impossible de prouver que le volume caché existe, même si le volume extérieur est monté.\n\nAVERTISSEMENT : Si vous ne  [...]
+    <string lang="fr" key="FIRST_HIDDEN_OS_BOOT_INFO">Vous avez démarré le système d'exploitation caché. Comme vous l'avez peut-être remarqué, le système d'exploitation caché semble être installé sur la même partition que le système d'exploitation d'origine. Cependant, en réalité, il est installé dans une de ses sous-partition (dans le volume caché). Toutes les opérations de lecture/écriture sont redirigées de manière transparente de la partition système d'origine vers le volume caché.\n [...]
     <string lang="fr" key="HIDVOL_HOST_FILLING_HELP_SYSENC">Le volume externe a été créé et monté comme lecteur %hc:. Dans ce volume, vous devriez y copier quelques fichiers apparemment importants que vous ne voulez en réalité PAS cacher. Ils seront là pour quiconque vous force à dévoiler le mot de passe pour la première partition après la partition système, où se trouveront le volume externe et le volume caché (contenant le système d'exploitation caché). Vous pourrez révéler le mot de p [...]
-    <string lang="fr" key="HIDVOL_HOST_FILLING_HELP">Le volume externe a été créé avec succès et monté comme lecteur %hc:. Pour utiliser ce volume, vous devriez maintenant copier quelques données 'apparemment' sensibles que vous ne voulez PAS réellement cacher. Ces fichiers seront là pour quiconque voudrait vous forcer la main pour avoir votre mot de passe. Vous ne révélerez que le mot de passe du volume externe, pas celui du volume caché. Les fichiers auxquels vous tenez seront stockés  [...]
+    <string lang="fr" key="HIDVOL_HOST_FILLING_HELP">Le volume externe a été créé avec succès et monté comme lecteur %hc:. Pour utiliser ce volume, vous devriez maintenant copier quelques données 'apparemment' sensibles que vous ne voulez PAS réellement cacher. Ces fichiers seront là pour quiconque voudrait vous forcer la main pour avoir votre mot de passe. Vous ne révélerez que le mot de passe du volume externe, pas celui du volume caché. Les fichiers auxquels vous tenez seront stockés  [...]
     <string lang="fr" key="HIDVOL_HOST_FILLING_TITLE">Contenu du volume externe</string>
     <string lang="fr" key="HIDVOL_HOST_PRE_CIPHER_HELP">\n\nDans les étapes suivantes, vous paramétrerez les options pour le volume externe (dans lequel le volume caché sera créé ultérieurement).</string>
     <string lang="fr" key="HIDVOL_HOST_PRE_CIPHER_HELP_SYSENC">\n\nDans les étapes suivantes, vous allez créer un pseudo volume externe VeraCrypt dans la première partition après la partition système (comme cela a été expliqué précédemment).</string>
     <string lang="fr" key="HIDVOL_HOST_PRE_CIPHER_TITLE">Volume externe</string>
-    <string lang="en" key="HIDDEN_OS_PRE_CIPHER_HELP">In the following steps, you will set the options and password for the hidden volume, which will contain the hidden operating system.\n\nRemark: The cluster bitmap of the outer volume has been scanned in order to determine the size of uninterrupted area of free space whose end is aligned with the end of the outer volume. This area will accommodate the hidden volume, so it limits its maximum possible size. The maximum possible size of t [...]
-    <string lang="en" key="HIDDEN_OS_PRE_CIPHER_WARNING">IMPORTANT: Please remember the algorithms that you select in this step. You will have to select the same algorithms for the decoy system. Otherwise, the hidden system will be inaccessible! (The decoy system must be encrypted with the same encryption algorithm as the hidden system.)\n\nNote: The reason is that the decoy system and the hidden system will share a single boot loader, which supports only a single algorithm, selected by  [...]
+    <string lang="fr" key="HIDDEN_OS_PRE_CIPHER_HELP">Dans les étapes suivantes, vous allez définir les options et mot de passe pour le volume caché, qui contiendra le système d'exploitation caché.\n\nRemarque : Le volume externe a été scanné afin de déterminer la taille de la zone ininterrompue d'espace libre dont l'extrémité est alignée avec l'extrémité extérieure du volume. Cette zone pourra accueillir le volume caché et elel limite sa taille maximale possible. La taille maximale poss [...]
+    <string lang="fr" key="HIDDEN_OS_PRE_CIPHER_WARNING">Important : Mémorisez les algorithmes que vous sélectionnez à cette étape. Vous devrez sélectionner les mêmes algorithmes pour le système de leurre, sinon le système caché sera inaccessible! (Le système de leurre doit être chiffré avec le même algorithme de cryptage que le système caché).\n\nRemarque : La raison en est que le système de leurre et le système caché partageront le même chargeur d'amorçage, qui ne supporte qu'un seul a [...]
     <string lang="fr" key="HIDVOL_PRE_CIPHER_HELP">\n\nLe plan de configuration du volume a été scanné et la taille maximale possible du volume caché a été déterminée. Dans les étapes qui suivent vous paramétrerez les options, la taille et le mot de passe du volume caché.</string>
     <string lang="fr" key="HIDVOL_PRE_CIPHER_TITLE">Volume caché</string>
     <string lang="fr" key="HIDVOL_PROT_WARN_AFTER_MOUNT">Le volume caché est maintenant protégé contre les dommages jusqu'au démontage du volume externe.\n\nAVERTISSEMENT : Si vous tentez de sauvegarder des données dans la zone du volume caché, VeraCrypt lancera la protection en écriture sur l'intégralité du volume (partie externe et cachée) jusqu'au démontage. Cela peut provoquer la corruption du système de fichiers sur le volume externe ce qui (si répétition) pourrait affecter le déni  [...]
     <string lang="fr" key="HIDVOL_PROT_WARN_AFTER_MOUNT_PLURAL">Tous les volumes cachés dans les nouveaux volumes montés sont maintenant protégés contre les dommages jusqu'au démontage.\n\nAVERTISSEMENT : Si vous tentez de sauvegarder des données dans la zone de protection du volume caché de ces volumes, VeraCrypt lancera la protection en écriture sur l'intégralité du volume (partie externe et cachée) jusqu'au démontage. Cela peut provoquer la corruption du système de fichiers sur le vol [...]
     <string lang="fr" key="DAMAGE_TO_HIDDEN_VOLUME_PREVENTED">AVERTISSEMENT : Vous tentez de sauvegarder des données dans la zone du volume caché du volume monté %c: ! VeraCrypt a empêché la sauvegarde des données pour protéger le volume caché. Cela peut provoquer la corruption du système de fichiers sur le volume externe et Windows considérera cela comme une erreur d'écriture ("L'écriture décalée a échoué" ou "Le paramètre est incorrect"). L'intégralité du volume (partie externe et cach [...]
-    <string lang="en" key="CANNOT_SATISFY_OVER_4G_FILE_SIZE_REQ">You have indicated intent to store files larger than 4 GB on the volume. This requires the volume to be formatted as NTFS, which, however, will not be possible.</string>
-    <string lang="en" key="CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS">Please note that when a hidden operating system is running, non-hidden VeraCrypt volumes cannot be formatted as NTFS. The reason is that the volume would need to be temporarily mounted without write protection in order to allow the operating system to format it as NTFS (whereas formatting as FAT is performed by VeraCrypt, not by the operating system, and without mounting the volume). For further technical d [...]
-    <string lang="en" key="HIDDEN_VOL_CREATION_UNDER_HIDDEN_OS_HOWTO">For security reasons, when a hidden operating system is running, hidden volumes can be created only in the 'direct' mode (because outer volumes must always be mounted as read-only). To create a hidden volume securely, follow these steps:\n\n1) Boot the decoy system.\n\n2) Create a normal VeraCrypt volume and, to this volume, copy some sensitive-looking files that you actually do NOT want to hide (the volume will become [...]
-    <string lang="en" key="HIDDEN_OS_WRITE_PROTECTION_BRIEF_INFO">For security reasons, when a hidden operating system is running, local unencrypted filesystems and non-hidden VeraCrypt volumes are mounted as read-only (no data can be written to such filesystems or VeraCrypt volumes).\n\nData is allowed to be written to any filesystem that resides within a hidden VeraCrypt volume (provided that the hidden volume is not located in a container stored on an unencrypted filesystem or on any  [...]
-    <string lang="en" key="HIDDEN_OS_WRITE_PROTECTION_EXPLANATION">There are three main reasons why such countermeasures have been implemented:\n\n- It enables the creation of a secure platform for mounting of hidden VeraCrypt volumes. Note that we officially recommend that hidden volumes are mounted only when a hidden operating system is running. (For more information, see the subsection 'Security Requirements and Precautions Pertaining to Hidden Volumes' in the documentation.)\n\n- In  [...]
-    <string lang="fr" key="DECOY_TO_HIDDEN_OS_DATA_TRANSFER_HOWTO">Note : Si vous devez transférer des fichiers de façon sécurisée du système leurre vers le système caché, suivez les étapes suivantes : 1) Démarrez le système leurre. 2) Enregistrez les fichiers dans un volume non chiffré ou dans un volume VeraCrypt externe/normal. 3) Démarrez le système caché. 4) Si vous avez enregistré les fichiers dans un volume VeraCrypt, montez-le (il sera automatiquement monté en lecture seule). 5) C [...]
+    <string lang="fr" key="CANNOT_SATISFY_OVER_4G_FILE_SIZE_REQ">Vous avez indiqué l'intention de stocker des fichiers de plus de 4Go sur le volume. Pour cela, le volume doit être formater en NTFS, ce qui, cependant, ne sera pas possible.</string>
+    <string lang="fr" key="CANNOT_CREATE_NON_HIDDEN_NTFS_VOLUMES_UNDER_HIDDEN_OS">Veuillez noter que lorsqu'un système d'exploitation caché s'exécute, les volumes non-masqués VeraCrypt ne peuvent pas être formatés en NTFS. La raison est que le volume devra être monté temporairement sans protection contre l'écriture afin de permettre au système d'exploitation de le formater en NTFS (alors que le formatage en FAT est réalisé par VeraCrypt, non par le système d'exploitation et sans montage  [...]
+    <string lang="fr" key="HIDDEN_VOL_CREATION_UNDER_HIDDEN_OS_HOWTO">Pour des raisons de sécurité, lorsqu'un système d'exploitation caché s'exécute, les volumes cachés peuvent être créés uniquement dans le mode « direct » (parce que les volumes extérieurs doivent toujours être montés en lecture seule). Pour créer un volume caché en toute sécurité, suivez ces étapes :\n\n1) Démarrer le système leurre.\n\n2) Créer un volume VeraCrypt normal et copier sur ce volume certains fichiers d'appa [...]
+    <string lang="fr" key="HIDDEN_OS_WRITE_PROTECTION_BRIEF_INFO">Pour des raisons de sécurité, lorsqu'un système d'exploitation caché s'exécute, les systèmes de fichiers locaux non chiffrés et les volumes VeraCrypt non masqués sont montés en lecture seule (aucune donnée ne peut être écrite dans ces systèmes de fichiers ou volumes VeraCrypt).\n\nLes données peuvent être écrites dans n'importe quel système de fichiers qui réside dans un volume de VeraCrypt caché (à condition que le volume [...]
+    <string lang="fr" key="HIDDEN_OS_WRITE_PROTECTION_EXPLANATION">Il y a trois raisons principales pour lesquelles ces contre-mesures ont été mises en œuvre :\n\n- Cela permet la création d'une plateforme sécurisée pour le montage des volumes cachés VeraCrypt. Notez que nous recommandons officiellement que les volumes cachés soient montés uniquement lorsqu'un système d'exploitation caché s'exécute. (Pour plus d'informations, consultez la sous-section « Exigences de sécurité et précautio [...]
+    <string lang="fr" key="DECOY_TO_HIDDEN_OS_DATA_TRANSFER_HOWTO">Remarque : Si vous devez transférer des fichiers de façon sécurisée du système leurre vers le système caché, suivez les étapes suivantes : 1) Démarrez le système leurre. 2) Enregistrez les fichiers dans un volume non chiffré ou dans un volume VeraCrypt externe/normal. 3) Démarrez le système caché. 4) Si vous avez enregistré les fichiers dans un volume VeraCrypt, montez-le (il sera automatiquement monté en lecture seule).  [...]
     <string lang="fr" key="CONFIRM_RESTART">Votre ordinateur doit être redémarré.\n\nVoulez-vous le redémarrer maintenant ?</string>
     <string lang="fr" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Une erreur s'est produite en récupérant l'état du chiffrement du système.</string>
     <string lang="fr" key="INIT_SYS_ENC">Impossible d'initialiser les composants de l'application pour le chiffrement du système.</string>
-    <string lang="fr" key="INIT_RAND">L'initialisation du générateur de nombre aléatoire a échoué !</string>
+    <string lang="fr" key="INIT_RAND">L'initialisation du générateur de nombre aléatoire a échoué !\n\n\n(Si vous rapportez un bogue en rapport à cela, n'oubliez pas d'inclure les informations techniques suivantes dans le rapport de bogue : %hs, code d'erreur : 0x%.8X)</string>
+    <string lang="fr" key="CAPI_RAND">L'API Crypto Windows a échoué !\n\n\n(Si vous rapportez un bogue en rapport à cela, n'oubliez pas d'inclure les informations techniques suivantes dans le rapport de bogue : %hs, code d'erreur : 0x%.8X)</string>
     <string lang="fr" key="INIT_REGISTER">Impossible d'initialiser l'application. L'enregistrement de la classe Dialog a échoué.</string>
-    <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
+    <string lang="fr" key="INIT_RICHEDIT">Erreur : Echec de chargement de la librairie système Rich Edit.</string>
     <string lang="fr" key="INTRO_TITLE">Assistant de création de volume</string>
     <string lang="fr" key="MAX_HIDVOL_SIZE_BYTES">Taille maximale du volume caché pour ce volume : %.2f octets.</string>
     <string lang="fr" key="MAX_HIDVOL_SIZE_KB">Taille maximale du volume caché pour ce volume : %.2f Ko.</string>
     <string lang="fr" key="MAX_HIDVOL_SIZE_MB">Taille maximale du volume caché pour ce volume : %.2f Mo.</string>
-    <string lang="en" key="MAX_HIDVOL_SIZE_GB">Maximum possible hidden volume size for this volume is %.2f GB.</string>
+    <string lang="fr" key="MAX_HIDVOL_SIZE_GB">Taille maximale du volume caché pour ce volume : %.2f Go.</string>
     <string lang="fr" key="MOUNTED_NOPWCHANGE">Le mot de passe/le fichier clé du volume ne peut pas être changé quand celui-ci est monté. Démontez le volume en premier.</string>
     <string lang="fr" key="MOUNTED_NO_PKCS5_PRF_CHANGE">L'algorithme de dérivation de la clé d'en-tête ne peut pas être changé quand le volume est monté. Démontez le volume en premier.</string>
     <string lang="fr" key="MOUNT_BUTTON">Monter</string>
     <string lang="fr" key="NEW_VERSION_REQUIRED">Ce volume nécessite une nouvelle version de VeraCrypt.</string>
     <string lang="fr" key="VOL_CREATION_WIZARD_NOT_FOUND">Erreur : Assistant de création de volume introuvable.\n\nAssurez-vous que le fichier 'VeraCrypt Format.exe' est dans le répertoire duquel a été exécuté 'VeraCrypt.exe'. S'il n'y est pas, réinstallez VeraCrypt ou localisez 'VeraCrypt Format.exe' sur votre disque et exécutez-le.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Erreur : Programme d'agrandissement de volume introuvable.\n\nAssurez-vous que le fichier 'VeraCryptExpander.exe' est dans le répertoire duquel a été exécuté 'VeraCrypt.exe'. S'il n'y est pas, réinstallez VeraCrypt ou localisez 'VeraCryptExpander.exe' sur votre disque et exécutez-le.</string>
     <string lang="fr" key="NEXT">Suivant ></string>
     <string lang="fr" key="FINALIZE">&Terminer</string>
     <string lang="fr" key="INSTALL">&Installer</string>
@@ -552,38 +557,38 @@
     <string lang="fr" key="HIDDEN_VOLUME_TOO_SMALL_FOR_OS_CLONE">Erreur : Les fichiers copiés dans le volume externe occupent trop d'espace. Aussi il n'y a pas assez d'espace libre dans le volume externe pour le volume caché.\n\nNotez que le volume caché doit être aussi large que la partition système (la partition où est installé le système d'exploitation actuellement en fonction). La raison est que le système d'exploitation caché a besoin d'être créé en copiant le contenu de la partitio [...]
     <string lang="fr" key="OPENFILES_DRIVER">Le pilote ne peut pas démonter le volume. Certains fichiers localisés sur le volume sont probablement encore ouverts.</string>
     <string lang="fr" key="OPENFILES_LOCK">Impossible de verrouiller le volume. Il y a encore des fichiers ouverts sur le volume. Aussi il ne sera pas démonté.</string>
-    <string lang="en" key="VOL_LOCK_FAILED_OFFER_FORCED_DISMOUNT">VeraCrypt cannot lock the volume because it is in use by the system or applications (there may be open files on the volume).\n\nDo you want to force dismount on the volume?</string>
+    <string lang="fr" key="VOL_LOCK_FAILED_OFFER_FORCED_DISMOUNT">VeraCrypt ne peut pas verrouiller le volume car il est utilisé par le système ou des applications (il peut y avoir des fichiers ouverts sur le volume).\n\n Voulez-vous forcer pour le démontage du volume ?</string>
     <string lang="fr" key="OPEN_VOL_TITLE">Sélectionner un volume VeraCrypt</string>
     <string lang="fr" key="OPEN_TITLE">Spécifier le nom et l'emplacement</string>
     <string lang="fr" key="SELECT_PKCS11_MODULE">Sélectionner la bibliothèque PKCS #11</string>
     <string lang="fr" key="OUTOFMEMORY">Pas assez de mémoire</string>
-    <string lang="en" key="FORMAT_DEVICE_FOR_ADVANCED_ONLY">IMPORTANT: We strongly recommend that inexperienced users create a VeraCrypt file container on the selected device/partition, instead of attempting to encrypt the entire device/partition.\n\nWhen you create a VeraCrypt file container (as opposed to encrypting a device or partition) there is, for example, no risk of destroying a large number of files. Note that a VeraCrypt file container (even though it contains a virtual encrypt [...]
+    <string lang="fr" key="FORMAT_DEVICE_FOR_ADVANCED_ONLY">IMPORTANT : Nous recommandons fortement que les utilisateurs inexpérimentés créent un conteneur de fichier VeraCrypt sur le périphérique/partition sélectionné, au lieu d'essayer de chiffrer la totalité du lecteur/partition.\n\nQuand vous créez un conteneur de fichier VeraCrypt (par opposition à chiffrer une partition ou un périphérique) il n'y a, par exemple, aucun risque de détruire un grand nombre de fichiers. Notez qu'un cont [...]
     <string lang="fr" key="OVERWRITEPROMPT">AVERTISSEMENT : Le fichier '%hs' existe déjà !\n\nIMPORTANT : VERACRYPT NE CHIFFRERA PAS LE FICHIER, MAIS IL LE SUPPRIMERA.\n\nÊtes-vous sûr de vouloir supprimer le fichier et le remplacer par un nouveau conteneur VeraCrypt ?</string>
     <string lang="fr" key="OVERWRITEPROMPT_DEVICE">ATTENTION : TOUS LES FICHIERS ACTUELLEMENT STOCKÉS SUR %s '%hs'%s  SERONT ÉCRASÉS ET PERDUS (ILS NE SERONT PAS CHIFFRÉS) !\n\nÊtes vous sûr de vouloir procéder au formatage.</string>
-    <string lang="en" key="NONSYS_INPLACE_ENC_CONFIRM">WARNING: You will not be able to mount the volume or access any files stored on it until it has been fully encrypted.\n\nAre you sure you want to start encrypting the selected %s '%hs'%s?</string>
-    <string lang="en" key="NONSYS_INPLACE_ENC_CONFIRM_BACKUP">WARNING: Please note that if power supply is suddenly interrupted while encrypting existing data in place, or when the operating system crashes due to a software error or hardware malfunction while VeraCrypt is encrypting existing data in place, portions of the data will be corrupted or lost. Therefore, before you start encrypting, please make sure that you have backup copies of the files you want to encrypt.\n\nDo you have su [...]
+    <string lang="fr" key="NONSYS_INPLACE_ENC_CONFIRM">AVERTISSEMENT : Vous ne serez pas en mesure de monter le volume ou d'accéder à des fichiers stockés dessus, jusqu'à ce qu'il ait été entièrement chiffré.\n\n Êtes-vous sûr que vous souhaitez démarrer le chiffrement sur la sélection %s '%hs'%s?</string>
+    <string lang="fr" key="NONSYS_INPLACE_ENC_CONFIRM_BACKUP">AVERTISSEMENT : Veuillez noter que si l'alimentation est soudainement interrompu lors du chiffrement des données existantes en place, ou lorsque le système d'exploitation plante à cause d'une erreur de logiciel ou de matériel alors que VeraCrypt chiffre les données existantes en place, certaines parties des données seront corrompues ou perdues. Par conséquent, avant de commencer à chiffrer, assurez-vous que vous disposez de co [...]
     <string lang="fr" key="OVERWRITEPROMPT_DEVICE_HIDDEN_OS_PARTITION">PRUDENCE : TOUS LES FICHIERS ACTUELLEMENT STOCKÉS SUR LA PARTITION '%hs'%s (i.e. SUR LA PREMIÈRE PARTITION APRÈS LA PARTITION SYSTÈME) SERONT ÉCRASÉS ET PERDUS (ILS NE SERONT PAS CHIFFRÉS) !\n\nÊtes-vous sûr de vouloir procéder au formatage ?</string>
-    <string lang="en" key="OVERWRITEPROMPT_DEVICE_SECOND_WARNING_LOTS_OF_DATA">WARNING: THE SELECTED PARTITION CONTAINS A LARGE AMOUNT OF DATA! Any files stored on the partition will be erased and lost (they will NOT be encrypted)!</string>
-    <string lang="en" key="ERASE_FILES_BY_CREATING_VOLUME">Erase any files stored on the partition by creating a VeraCrypt volume within it</string>
+    <string lang="fr" key="OVERWRITEPROMPT_DEVICE_SECOND_WARNING_LOTS_OF_DATA">ATTENTION : LA PARTITION SÉLECTIONNÉE CONTIENT UNE GRANDE QUANTITÉ DE DONNÉES ! Tous les fichiers stockés sur la partition seront effacés et perdus (ils ne seront pas chiffrés) !</string>
+    <string lang="fr" key="ERASE_FILES_BY_CREATING_VOLUME">Effacer tous les fichiers stockés sur la partition en créant un volume VeraCrypt dessus</string>
     <string lang="fr" key="PASSWORD">Mot de passe</string>
     <string lang="fr" key="IDD_PCDM_CHANGE_PKCS5_PRF">Paramétrer l'algorithme de dérivation de la clé d'en-tête</string>
     <string lang="fr" key="IDD_PCDM_ADD_REMOVE_VOL_KEYFILES">Ajouter/Supprimer les fichiers clés au/du volume</string>
     <string lang="fr" key="IDD_PCDM_REMOVE_ALL_KEYFILES_FROM_VOL">Supprimer tous les fichiers clés du volume</string>
-    <string lang="en" key="PASSWORD_CHANGED">Password and/or keyfile(s) successfully changed.\n\nIMPORTANT: Please make sure you have read the section 'Changing Passwords and Keyfiles' in the chapter 'Security Requirements and Precautions' in the VeraCrypt User Guide.</string>
+    <string lang="fr" key="PASSWORD_CHANGED">Mot de passe et/ou fichier(s) clé(s) modifiés avec succès.\n\nIMPORTANT : Assurez-vous que vous avez lu la section "Changer les mots de passe et fichiers clés" dans le chapitre « Exigences de sécurité et précautions » dans le guide de l'utilisateur VeraCrypt.</string>
     <string lang="fr" key="SYS_PASSWORD_CHANGED_ASK_RESCUE_DISK">IMPORTANT : Si vous n'avez pas détruit votre disque de secours VeraCrypt, votre partition/disque système peut encore être déchiffré en utilisant l'ancien mot de passe (en démarrant avec le disque de secours VeraCrypt et en saisissant mot de passe). Vous devriez créer un nouveau disque de secours VeraCrypt et détruire l'ancien.\n\nVoulez-vous créer un nouveau disque de secours VeraCrypt ?</string>
     <string lang="fr" key="SYS_HKD_ALGO_CHANGED_ASK_RESCUE_DISK">Notez que votre disque de secours VeraCrypt utilise toujours l'algorithme précédent. Si vous considérez l'algorithme précédent non sécurisé, vous devriez créer un nouveau disque de secours VeraCrypt puis détruire l'ancien.\n\nVoulez-vous créer un nouveau disque de secours VeraCrypt ?</string>
     <string lang="fr" key="KEYFILES_NOTE">Tout type de fichier (par exemple .mp3, .jpg, .zip, .avi) peut être utilisé en tant que fichier clé VeraCrypt. Notez que VeraCrypt ne modifie jamais le contenu du fichier clé. Vous pouvez sélectionner plus d'un fichier clé (l'ordre n'a pas d'importance). Si vous ajoutez un dossier, tous les fichiers non cachés trouvés dans le dossier seront utilisés en tant que fichiers clés. Cliquez sur "Add Token Files..." pour sélectionner des fichiers clés st [...]
     <string lang="fr" key="KEYFILE_CHANGED">Fichier(s) clé ajouté(s)/supprimé(s) avec succès.</string>
-    <string lang="en" key="KEYFILE_EXPORTED">Keyfile exported.</string>
+    <string lang="fr" key="KEYFILE_EXPORTED">Fichier clé exporté.</string>
     <string lang="fr" key="PKCS5_PRF_CHANGED">Algorithme de dérivation de la clé d'en-tête paramétré avec succès.</string>
     <string lang="fr" key="NONSYS_INPLACE_ENC_RESUME_PASSWORD_PAGE_HELP">Veuillez entrer le mot de passe et/ou le(s) fichier(s) clé(s) pour le volume non système où vous souhaitez reprendre le processus de chiffrement "in-place".\n\n\nRemarque : Après avoir cliqué sur Suivant, VeraCrypt tentera de trouver tous les volumes non système où le processus de chiffrement a été interrompu et où l'en-tête de volume VeraCrypt peut être déchiffré en utilisant le mot de passe et/ou le(s) fichier(s)  [...]
-    <string lang="en" key="NONSYS_INPLACE_ENC_RESUME_VOL_SELECT_HELP">Please select one of the listed volumes. The list contains every accessible non-system volume where the process of encryption has been interrupted and whose header could be decrypted using the supplied password and/or keyfile(s).</string>
+    <string lang="fr" key="NONSYS_INPLACE_ENC_RESUME_VOL_SELECT_HELP">Veuillez sélectionner un des volumes répertoriés. La liste contient chaque volume non-système accessible où le processus de chiffrement a été interrompu et dont l'en-tête pourrait être déchiffrée à l'aide du mot de passe fourni et/ou du ou des fichiers clés.</string>
     <string lang="fr" key="PASSWORD_HELP">Il est très important que vous choisissiez un bon mot de passe. Vous devriez éviter d'utiliser un mot simple que l'on trouve dans un dictionnaire (ou une combinaison de plusieurs de ces mots). Il ne devrait pas contenir de noms ou de dates de naissance. Il ne devrait pas être facile à deviner. Un bon mot de passe est une combinaison de minuscules et de majuscules, de chiffres et de caractères spéciaux comme @ ^ = $ * + etc. Il est recommandé de c [...]
     <string lang="fr" key="PASSWORD_HIDDENVOL_HELP">Choisissez un mot de passe pour le volume caché. </string>
     <string lang="fr" key="PASSWORD_HIDDEN_OS_HELP">Choisissez un mot de passe pour le système d'exploitation caché (i.e. pour le volume caché). </string>
-    <string lang="en" key="PASSWORD_HIDDEN_OS_NOTE">IMPORTANT: The password that you choose for the hidden operating system in this step must be substantially different from the other two passwords (i.e. from the password for the outer volume and from the password for the decoy operating system).</string>
+    <string lang="fr" key="PASSWORD_HIDDEN_OS_NOTE">IMPORTANT : Le mot de passe que vous choisissez dans cette étape pour le système d'exploitation caché doit être sensiblement différent des 2 autres mots de passe (c'est-à-dire le mot de passe pour le volume extérieur et le mot de passe pour le système d'exploitation leurre).</string>
     <string lang="fr" key="PASSWORD_HIDDENVOL_HOST_DIRECT_HELP">Saisissez le mot de passe du volume dans lequel vous désirez créer un volume caché.\n\nAprès avoir cliqué sur 'Suivant', VeraCrypt essaiera de monter le volume. Aussitôt monté, son plan de configuration sera scanné pour déterminer la taille du bloc ininterrompu d'espace libre (s'il existe) dont la fin est alignée avec celle du volume. Ce bloc adaptera le volume caché et ainsi limitera sa taille maximale possible. Le scan du  [...]
-    <string lang="fr" key="PASSWORD_HIDDENVOL_HOST_HELP">\nChoisissez un mot de passe pour le volume externe. Ce sera le mot de passe que vous pourrez révéler si on vous le demande ou si on vous force à le faire.\n\nIMPORTANT : le mot de passe doit être différent de celui que vous utiliserez pour le volume caché.\n\nNote : La taille maximale du mot de passe est de 64 caractères.</string>
+    <string lang="fr" key="PASSWORD_HIDDENVOL_HOST_HELP">\nChoisissez un mot de passe pour le volume externe. Ce sera le mot de passe que vous pourrez révéler si on vous le demande ou si on vous force à le faire.\n\nIMPORTANT : le mot de passe doit être différent de celui que vous utiliserez pour le volume caché.\n\nRemarque : La taille maximale du mot de passe est de 64 caractères.</string>
     <string lang="fr" key="PASSWORD_SYSENC_OUTERVOL_HELP">Choisissez un mot de passe pour le volume externe. Ce sera le mot de passe que vous pourrez divulguer à toute personne vous forçant à révéler le mot de passe de la première partition après la partition système, où résideront le volume externe et le volume caché (contenant le système d'exploitation caché). L'existence du volume caché restera secrète. Notez que ce mot de passe n'est pas pour le système d'exploitation leurre.\n\nIMPO [...]
     <string lang="fr" key="PASSWORD_HIDVOL_HOST_TITLE">Mot de passe du volume externe</string>
     <string lang="fr" key="PASSWORD_HIDVOL_TITLE">Mot de passe du volume caché</string>
@@ -597,10 +602,10 @@
     <string lang="fr" key="PASSWORD_WRONG_AUTOMOUNT">Mot de passe incorrect ou aucun volume VeraCrypt trouvé.</string>
     <string lang="fr" key="PASSWORD_OR_KEYFILE_WRONG_AUTOMOUNT">Fichier(s) clé et/ou mot de passe incorrect(s) ou aucun volume VeraCrypt trouvé.</string>
     <string lang="fr" key="PASSWORD_WRONG_CAPSLOCK_ON">\n\nAvertissement : Majuscules activées. Ceci peut vous empêcher de saisir correctement votre mot de passe.</string>
-    <string lang="en" key="HIDDEN_FILES_PRESENT_IN_KEYFILE_PATH">\n\nWARNING: Hidden file(s) have been found in a keyfile search path. Such hidden files cannot be used as keyfiles. If you need to use them as keyfiles, remove their 'Hidden' attribute (right-click each of them, select 'Properties', uncheck 'Hidden' and click OK). Note: Hidden files are visible only if the corresponding option is enabled (Computer > Organize > 'Folder and search options' > View).</string>
-    <string lang="en" key="HIDDEN_VOL_PROT_PASSWORD_US_KEYB_LAYOUT">If you are attempting to protect a hidden volume containing a hidden system, please make sure you are using the standard US keyboard layout when typing the password for the hidden volume. This is required due to the fact that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available.</string>
+    <string lang="fr" key="HIDDEN_FILES_PRESENT_IN_KEYFILE_PATH">\n\nAVERTISSEMENT : Les fichiers cachés ont été trouvés dans un chemin de recherche de fichier de clé. De tels fichiers cachés ne peuvent pas être utilisés comme fichiers clés. Si vous avez besoin de les utiliser comme fichiers clés, enlever leur attribut « Caché » (cliquez-droit sur chacun d'eux, sélectionnez « Propriétés », décochez la case « Caché » et cliquez sur OK). Remarque : Les fichiers cachés sont visibles uniquem [...]
+    <string lang="fr" key="HIDDEN_VOL_PROT_PASSWORD_US_KEYB_LAYOUT">Si vous souhaitez protéger un volume caché contenant un système caché, assurez-vous que vous utilisez la disposition du clavier américain standard lorsque vous tapez le mot de passe pour le volume caché. Cela est nécessaire en raison du fait que le mot de passe doit être entré dans l'environnement de pré-amorçage (avant le démarrage de Windows) lorsque les dispositions de clavier de Windows ne sont pas disponibles.</string>
     <string lang="fr" key="FOUND_NO_PARTITION_W_DEFERRED_INPLACE_ENC">VeraCrypt n'a pas trouvé de volume où un chiffrement non système a été interrompu et où l'en-tête du volume peut être déchiffré en utilisant le mot de passe et/ou le(s) fichier(s) clé(s) fournis.\n\nVeuillez vous assurer que le mot de passe et/ou le(s) fichier(s) clé(s) sont corrects et que la partition/le volume n'est pas actuellement utilisé(e) par le système ou des applications (y compris l'antivirus).</string>
-    <string lang="fr" key="SYSENC_MOUNT_WITHOUT_PBA_NOTE">\n\nNote : Si vous essayez de monter une partition localisée sur un disque système chiffré sans authentification lors du pré-amorçage ou de monter une partition système chiffrée d'un système d'exploitation qui n'est pas lancé, vous pouvez le faire en sélectionnant 'Système' > 'Monter sans authentification lors du pré-amorçage'.</string>
+    <string lang="fr" key="SYSENC_MOUNT_WITHOUT_PBA_NOTE">\n\nRemarque : Si vous essayez de monter une partition localisée sur un disque système chiffré sans authentification lors du pré-amorçage ou de monter une partition système chiffrée d'un système d'exploitation qui n'est pas lancé, vous pouvez le faire en sélectionnant 'Système' > 'Monter sans authentification lors du pré-amorçage'.</string>
     <string lang="fr" key="MOUNT_WITHOUT_PBA_VOL_ON_ACTIVE_SYSENC_DRIVE">Dans ce mode vous ne pouvez monter une partition située sur un disque dont une partie est dans la portée clé de chiffrement du système actif.\n\nAvant de pouvoir monter cette partition dans ce mode, vous devez soit démarrer un système d'exploitation installé sur un disque différent (chiffré ou non), soit démarrer un système d'exploitation non chiffré.</string>
     <string lang="fr" key="PREV">< &Précédent</string>
     <string lang="fr" key="RAWDEVICES">Impossible de lister les périphériques installés sur votre système !</string>
@@ -610,14 +615,14 @@
     <string lang="fr" key="SELECT_KEYFILE_PATH">Sélectionnez un chemin de recherche pour le fichier clé. AVERTISSEMENT : Notez que seul l'emplacement sera retenu, pas les noms de fichier.</string>
     <string lang="fr" key="SELECT_KEYFILE_GENERATION_DIRECTORY">Sélectionnez un répertorie où les fichiers clé seront créés.</string>
     <string lang="fr" key="SERPENT_HELP">Conçu par Ross Anderson, Eli Biham et Lars Knudsen. Publié en 1998. Clé de 256 bits, bloc de 128 bits. Le mode opératoire est XTS. Serpent était l'un des finalistes de AES.</string>
-    <string lang="en" key="SIZE_HELP">Please specify the size of the container you want to create.\n\nIf you create a dynamic (sparse-file) container, this parameter will specify its maximum possible size.\n\nNote that the minimum possible size of a FAT volume is 292 KB. The minimum possible size of an NTFS volume is 3792 KB.</string>
-    <string lang="en" key="SIZE_HELP_HIDDEN_HOST_VOL">Please specify the size of the outer volume to be created (you will first create the outer volume and then a hidden volume within it). The minimum possible size of a volume within which a hidden volume is intended to be created is 340 KB.</string>
-    <string lang="en" key="SIZE_HELP_HIDDEN_VOL">Please specify the size of the hidden volume to create. The minimum possible size of a hidden volume is 40 KB (or 3664 KB if it is formatted as NTFS). The maximum possible size you can specify for the hidden volume is displayed above.</string>
+    <string lang="fr" key="SIZE_HELP">Veuillez spécifier la taille du conteneur que vous voulez créer.\n\nSi vous créez un conteneur (fichier fragmenté) dynamique, ce paramètre représente la taille maximale possible.\n\nNotez que la taille minimum d'un volume FAT est 292 Ko. La taille minimum d'un volume NTFS est 3792 Ko</string>
+    <string lang="fr" key="SIZE_HELP_HIDDEN_HOST_VOL">Veuillez spécifier la taille du volume extérieur à créer (vous allez tout d'abord créer le volume extérieur, puis un volume caché dedans). La taille minimum d'un volume dans lequel un volume caché est créé est 340 Ko.</string>
+    <string lang="fr" key="SIZE_HELP_HIDDEN_VOL">Veuillez spécifier la taille du volume caché à créer. La taille minimum d'un volume caché est 40 Ko (ou 3664 Ko s'il est formaté en NTFS). La taille maximale possible, que vous pouvez spécifier pour un volume caché est affichée ci-dessus.</string>
     <string lang="fr" key="SIZE_HIDVOL_HOST_TITLE">Taille du volume externe</string>
     <string lang="fr" key="SIZE_HIDVOL_TITLE">Taille du volume caché</string>
-    <string lang="en" key="SIZE_PARTITION_HELP">Please verify that the size of the selected device/partition shown above is correct and click Next.</string>
+    <string lang="fr" key="SIZE_PARTITION_HELP">Veuillez vérifiez que la taille de la partition/lecteur sélectionné ci-dessus est correcte et cliquez sur suivant.</string>
     <string lang="fr" key="SIZE_PARTITION_HIDDEN_SYSENC_HELP">Le volume externe et le volume caché (contenant le système d'exploitation caché) résidera dans la partition ci-dessus. Ce devrait être la première partition qui suit la partition système.\n\nVérifiez que la taille de la partition et que les chiffres affichés plus haut sont corrects et s'ils le sont, cliquez sur 'Suivant'.</string>
-    <string lang="en" key="SIZE_PARTITION_HIDDEN_VOL_HELP">\n\nNote that the minimum possible size of a volume within which a hidden volume is intended to be created is 340 KB.</string>
+    <string lang="fr" key="SIZE_PARTITION_HIDDEN_VOL_HELP">\n\nNotez que la taille minimum d'un volume dans lequel un volume caché est créé est 340 Ko.</string>
     <string lang="fr" key="SIZE_TITLE">Taille du volume</string>
     <string lang="fr" key="SPARSE_FILE">Dynamique</string>
     <string lang="fr" key="TESTS_FAILED">ATTENTION : ÉCHEC DE L'AUTO-TEST !</string>
@@ -629,70 +634,70 @@
     <string lang="fr" key="TEST_PLAINTEXT_SIZE">Le texte en clair que vous avez fourni est trop long ou trop court.</string>
     <string lang="fr" key="TWO_LAYER_CASCADE_HELP">Deux chiffrements en cascade opérant en mode XTS. Chaque bloc est d'abord chiffré avec %hs (clé de %d bits), puis avec %hs (clé de %d bits). Chaque chiffrement utilise sa propre clé. Toutes les clés sont mutuellement indépendantes.</string>
     <string lang="fr" key="THREE_LAYER_CASCADE_HELP">Trois chiffrements en cascade opérant en mode XTS. Chaque bloc est d'abord chiffré avec %hs (clé de %d bits), puis avec %hs (clé de %d bits) et enfin avec %hs (clé de %d bits). Chaque chiffrement utilise sa propre clé. Toutes les clés sont mutuellement indépendantes.</string>
-    <string lang="en" key="AUTORUN_MAY_NOT_ALWAYS_WORK">Note that, depending on the operating system configuration, these auto-run and auto-mount features may work only when the traveler disk files are created on a non-writable CD/DVD-like medium. Also note that this is not a bug in VeraCrypt (it is a limitation of Windows).</string>
-    <string lang="en" key="TRAVELER_DISK_CREATED">VeraCrypt traveler disk has been successfully created.\n\nNote that you need administrator privileges to run VeraCrypt in portable mode. Also note that, after examining the registry file, it may be possible to tell that VeraCrypt was run on a Windows system even if it is run in portable mode.</string>
+    <string lang="fr" key="AUTORUN_MAY_NOT_ALWAYS_WORK">Notez que, selon la configuration du système d'exploitation, les propriétés d'auto-exécution et de montage automatique ne peuvent fonctionner que lorsque les fichiers sur disque amovibles sont créés sur un support de type CD/DVD non réinscriptibles. Notez également que ce n'est pas un bug dans VeraCrypt (c'est une limitation de Windows).</string>
+    <string lang="fr" key="TRAVELER_DISK_CREATED">Le disque amovible VeraCrypt a été créé avec succès.\n\nNotez que vous avez besoin des privilèges administrateur pour exécuter VeraCrypt en mode portable. Notez également qu'après examen du registre, il peut être possible de dire que VeraCrypt a été exécuté sur un système Windows, même s'il est exécutée en mode portable.</string>
     <string lang="fr" key="TC_TRAVELER_DISK">Disque nomade VeraCrypt</string>
     <string lang="fr" key="TWOFISH_HELP">Conçu par Bruce Schneier, David Wagner, John Kelsey, Niels Ferguson, Doug Whiting et Chris Hall. Publié en 1998. Clé de 256 bits et bloc de 128 bits. Le mode opératoire est XTS. Twofish était l'un des finalistes de AES.</string>
     <string lang="fr" key="MORE_INFO_ABOUT">Plus d'infos sur %hs</string>
     <string lang="fr" key="UNKNOWN">Inconnu</string>
-    <string lang="en" key="ERR_UNKNOWN">An unspecified or unknown error occurred (%d).</string>
+    <string lang="fr" key="ERR_UNKNOWN">Une erreur non spécifiée ou inconnue est survenue (%d).</string>
     <string lang="fr" key="UNMOUNTALL_LOCK_FAILED">Certains volumes contiennent des fichiers ou des dossiers en cours d'utilisation par une application ou par le système.\n\nForcer le démontage ?</string>
     <string lang="fr" key="UNMOUNT_BUTTON">Démonter</string>
     <string lang="fr" key="UNMOUNT_FAILED">Le démontage a échoué !</string>
     <string lang="fr" key="UNMOUNT_LOCK_FAILED">Le volume contient des fichiers ou des dossiers utilisés par des applications ou par le système.\n\nForcer le démontage ?</string>
-    <string lang="en" key="NO_VOLUME_MOUNTED_TO_DRIVE">No volume is mounted to the specified drive letter.</string>
+    <string lang="fr" key="NO_VOLUME_MOUNTED_TO_DRIVE">Aucun volume n'est monté sur l'unité logique spécifiée.</string>
     <string lang="fr" key="VOL_ALREADY_MOUNTED">Le volume que vous essayez de monter est déjà monté. </string>
     <string lang="fr" key="VOL_MOUNT_FAILED">Une erreur s'est produite en essayant de monter le volume.</string>
     <string lang="fr" key="VOL_SEEKING">Erreur en recherchant un emplacement dans le volume.</string>
     <string lang="fr" key="VOL_SIZE_WRONG">Erreur : Taille de volume incorrecte.</string>
-    <string lang="en" key="WARN_QUICK_FORMAT">WARNING: You should use Quick Format only in the following cases:\n\n1) The device contains no sensitive data and you do not need plausible deniability.\n2) The device has already been securely and fully encrypted.\n\nAre you sure you want to use Quick Format?</string>
-    <string lang="en" key="CONFIRM_SPARSE_FILE">Dynamic container is a pre-allocated NTFS sparse file whose physical size (actual disk space used) grows as new data is added to it.\n\nWARNING: Performance of sparse-file-hosted volumes is significantly worse than performance of regular volumes. Sparse-file-hosted volumes are also less secure, because it is possible to tell which volume sectors are unused. Furthermore, sparse-file-hosted volumes cannot provide plausible deniability (host a [...]
-    <string lang="en" key="SPARSE_FILE_SIZE_NOTE">Note that the size of the dynamic container reported by Windows and by VeraCrypt will always be equal to its maximum size. To find out current physical size of the container (actual disk space it uses), right-click the container file (in a Windows Explorer window, not in VeraCrypt), then select 'Properties' and see the 'Size on disk' value.\n\nAlso note that if you move a dynamic container to another volume or drive, the physical size of  [...]
-    <string lang="en" key="PASSWORD_CACHE_WIPED_SHORT">Password cache wiped</string>
-    <string lang="en" key="PASSWORD_CACHE_WIPED">Passwords (and/or processed keyfile contents) stored in the VeraCrypt driver cache have been wiped.</string>
+    <string lang="fr" key="WARN_QUICK_FORMAT">AVERTISSEMENT : Vous ne devriez utiliser le formatage rapide que dans les cas suivants : \n\n1) L'appareil ne contient aucune donnée sensible et vous n'avez pas besoin du déni plausible.\n2) L'appareil a déjà été sécurisé et chiffré.\n\nÊtes-vous sûr que vous souhaitez utiliser le formatage rapide ?</string>
+    <string lang="fr" key="CONFIRM_SPARSE_FILE">Un conteneur dynamique est une zone NTFS pré-allouée de fichiers fragmentés dont la taille physique (espace disque réellement utilisé) augmente au fur et à mesure que de nouvelles données y sont ajoutées.\n\nATTENTENTION : Les performances des volumes dynamiques sont considérablement plus mauvaises que les performances des volumes standards. Les volumes dans un conteneur dynamique sont également moins sûrs, parce qu'il est possible de dire  [...]
+    <string lang="fr" key="SPARSE_FILE_SIZE_NOTE">Notez que la taille du conteneur dynamique signalé par Windows et par VeraCrypt sera toujours égale à sa taille maximale. Pour connaître la taille physique actuelle du conteneur (l'espace disque réellement utilisé), cliquez-droit sur le fichier de conteneur (dans une fenêtre de l'explorateur Windows, pas dans VeraCrypt), puis sélectionnez « Propriétés » et visualiser la « Taille sur le disque ».\n\nNotez aussi que si vous déplacez un cont [...]
+    <string lang="fr" key="PASSWORD_CACHE_WIPED_SHORT">Cache de mot de passe nettoyé</string>
+    <string lang="fr" key="PASSWORD_CACHE_WIPED">Mots de passe (et/ou contenu traité des fichiers clés) stockés dans le cache du pilote VeraCrypt ont été nettoyés.</string>
     <string lang="fr" key="WRONG_VOL_TYPE">VeraCrypt ne peut pas changer le mot de passe d'un volume étranger.</string>
     <string lang="fr" key="SELECT_FREE_DRIVE">Sélectionnez une lettre de lecteur libre dans la liste.</string>
     <string lang="fr" key="SELECT_A_MOUNTED_VOLUME">Sélectionnez un volume monté dans la liste des lettres de lecteur.</string>
-    <string lang="en" key="AMBIGUOUS_VOL_SELECTION">Two different mounted volumes are currently selected (one in the drive letter list and the other in the input field below the list).\n\nPlease choose the volume you wanted to select:</string>
+    <string lang="fr" key="AMBIGUOUS_VOL_SELECTION">Deux volumes montés différents sont actuellement sélectionnés (un dans la liste d'unités logiques et l'autre dans le champ ci-dessous).\n\nChoisissez le volume que vous souhaitez sélectionner :</string>
     <string lang="fr" key="CANT_CREATE_AUTORUN">Erreur : Impossible de créer autorun.inf</string>
     <string lang="fr" key="ERR_PROCESS_KEYFILE">Erreur durant le traitement du fichier clé !</string>
     <string lang="fr" key="ERR_PROCESS_KEYFILE_PATH">Erreur durant le traitement de l'emplacement du fichier clé !</string>
-    <string lang="en" key="ERR_KEYFILE_PATH_EMPTY">The keyfile path contains no files.\n\nPlease note that folders (and files they contain) found in keyfile search paths are ignored.</string>
+    <string lang="fr" key="ERR_KEYFILE_PATH_EMPTY">Le chemin d'accès au fichier clé ne contient aucun fichier.\n\nNotez que les dossiers (et les fichiers qu'ils contiennent) trouvés dans le chemin de recherche sont ignorés.</string>
     <string lang="fr" key="UNSUPPORTED_OS">VeraCrypt ne supporte pas ce système d'exploitation.</string>
-    <string lang="en" key="UNSUPPORTED_BETA_OS">Error: VeraCrypt supports only stable versions of this operating system (beta/RC versions are not supported).</string>
+    <string lang="fr" key="UNSUPPORTED_BETA_OS">Erreur : VeraCrypt prend en charge uniquement les versions stables de ce système d'exploitation (les versions beta/RC ne sont pas prises en charge).</string>
     <string lang="fr" key="ERR_MEM_ALLOC">Erreur : Impossible d'allouer de la mémoire.</string>
     <string lang="fr" key="ERR_PERF_COUNTER">Erreur : Impossible de retrouver la valeur du compteur de performance.</string>
     <string lang="fr" key="ERR_VOL_FORMAT_BAD">Erreur : Mauvais format de volume.</string>
     <string lang="fr" key="ERR_HIDDEN_NOT_NORMAL_VOLUME">Erreur : Vous avez donné un mot de passe pour le volume caché (pas pour un volume normal).</string>
-    <string lang="en" key="ERR_HIDDEN_VOL_HOST_ENCRYPTED_INPLACE">For security reasons, a hidden volume cannot be created within a VeraCrypt volume containing a filesystem that has been encrypted in place (because the free space on the volume has not been filled with random data).</string>
+    <string lang="fr" key="ERR_HIDDEN_VOL_HOST_ENCRYPTED_INPLACE">Pour des raisons de sécurité, un volume caché ne peut pas être créé dans un volume VeraCrypt contenant un système de fichiers qui a été chiffré en place (parce que l'espace libre sur le volume n'a pas été rempli avec des données aléatoires).</string>
     <string lang="fr" key="LEGAL_NOTICES_DLG_TITLE">VeraCrypt - Mentions légales</string>
     <string lang="fr" key="ALL_FILES">Tous les fichiers</string>
     <string lang="fr" key="TC_VOLUMES">Volumes VeraCrypt</string>
-    <string lang="en" key="DLL_FILES">Library Modules</string>
+    <string lang="fr" key="DLL_FILES">Modules de bibliothèque</string>
     <string lang="fr" key="FORMAT_NTFS_STOP">Le formatage NTFS ne peut pas continuer.</string>
     <string lang="fr" key="CANT_MOUNT_VOLUME">Impossible de monter le volume.</string>
     <string lang="fr" key="CANT_DISMOUNT_VOLUME">Impossible de démonter le volume.</string>
     <string lang="fr" key="FORMAT_NTFS_FAILED">Windows n'a pas pû formater le volume en NTFS.\n\nSélectionnez un type de système de fichiers différent (si possible) et essayez à nouveau. Vous pouvez aussi laisser le volume non formaté (sélectionnez 'Aucun' comme système de fichiers), quittez cet assistant, montez le volume puis utilisez soit un outil système soit un outil tiers pour formater le volume monté (le volume restera chiffré).</string>
     <string lang="fr" key="FORMAT_NTFS_FAILED_ASK_FAT">Windows n'a pas pû formater le volume en NTFS.\n\nVoulez-vous formater le volume en FAT à la place ?</string>
     <string lang="fr" key="DEFAULT">Défaut</string>
-    <string lang="en" key="PARTITION_LOWER_CASE">partition</string>
+    <string lang="fr" key="PARTITION_LOWER_CASE">partition</string>
     <string lang="fr" key="PARTITION_UPPER_CASE">LA PARTITION</string>
     <string lang="fr" key="DEVICE">Périphérique</string>
-    <string lang="en" key="DEVICE_LOWER_CASE">device</string>
+    <string lang="fr" key="DEVICE_LOWER_CASE">périphérique</string>
     <string lang="fr" key="DEVICE_UPPER_CASE">LE PÉRIPHÉRIQUE</string>
     <string lang="fr" key="VOLUME">Volume</string>
-    <string lang="en" key="VOLUME_LOWER_CASE">volume</string>
-    <string lang="en" key="VOLUME_UPPER_CASE">VOLUME</string>
-    <string lang="en" key="LABEL">Label</string>
+    <string lang="fr" key="VOLUME_LOWER_CASE">volume</string>
+    <string lang="fr" key="VOLUME_UPPER_CASE">VOLUME</string>
+    <string lang="fr" key="LABEL">Etiquette</string>
     <string lang="fr" key="CLUSTER_TOO_SMALL">La taille de cluster sélectionnée est trop petite pour cette taille de volume. Une taille plus grande sera utilisée.</string>
     <string lang="fr" key="CANT_GET_VOLSIZE">Erreur : Impossible d'obtenir la taille du volume !\n\nAssurez-vous que le volume sélectionné n'est pas utilisé par le système ou par une application.</string>
-    <string lang="en" key="HIDDEN_VOL_HOST_SPARSE">Hidden volumes must not be created within dynamic (sparse file) containers. To achieve plausible deniability, the hidden volume needs to be created within a non-dynamic container.</string>
+    <string lang="fr" key="HIDDEN_VOL_HOST_SPARSE">Les volumes cachés ne doivent pas être créés dans les conteneurs dynamiques (fichiers fragmentés). Pour parvenir au déni plausible, le volume caché doit être créé dans un conteneur non-dynamique.</string>
     <string lang="fr" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS">L'assistant  de création de volume VeraCrypt ne peut créer un volume caché que dans un volume FAT ou NTFS.</string>
     <string lang="fr" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS_WIN2000">Sous Windows 2000, l'assistant de création de volume VeraCrypt ne peut créer un volume caché que dans un volume FAT.</string>
     <string lang="fr" key="HIDDEN_VOL_HOST_NTFS">Note : Le système de fichiers FAT convient mieux que NTFS pour les volumes externes (par ex : la taille maximale du volume caché aurait été probablement plus grande si le volume externe avait été formaté en FAT).</string>
     <string lang="fr" key="HIDDEN_VOL_HOST_NTFS_ASK">Notez que le système de fichiers FAT convient mieux que NTFS pour les volumes externes. Par exemple la taille maximale du volume caché aurait été probablement plus grande si le volume externe avait été formaté en FAT (la raison en est que NTFS stocke toujours les données internes au milieu du volume et ainsi, le volume caché ne peut résider que dans la seconde moitié du volume externe).\n\nÊtes-vous sûr de vouloir formater le volume ex [...]
     <string lang="fr" key="OFFER_FAT_FORMAT_ALTERNATIVE">Voulez-vous plutôt formater le volume en FAT ?</string>
-    <string lang="en" key="FAT_NOT_AVAILABLE_FOR_SO_LARGE_VOLUME">Note: This volume cannot be formatted as FAT, because it exceeds the maximum volume size supported by the FAT32 filesystem for the applicable sector size (2 TB for 512-byte sectors and 16 TB for 4096-byte sectors).</string>
+    <string lang="fr" key="FAT_NOT_AVAILABLE_FOR_SO_LARGE_VOLUME">Remarque : Ce volume ne peut pas être formaté en FAT car il dépasse la taille de volume maximale prise en charge par le système de fichiers FAT32 pour la taille de secteur en vigueur (2 to pour les secteurs de 512 octets et 16 TB pour les secteurs de 4096 octets).</string>
     <string lang="fr" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS">La partition pour le système d'exploitation caché (i.e. la première partition après la partition système) doit être au moins 5% plus large que la partition système (il s'agit de celle qui contient le système d'exploitation qui fonctionne actuellement).</string>
     <string lang="fr" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Erreur : La partition pour le système d'exploitation caché (i.e. la première partition après la partition système) doit être au moins 110% (2,1 fois) plus grande que la partition système (la partition système est celle où se trouve le système d'exploitation qui fonctionne actuellement). La raison en est que NTFS stocke toujours les données internes au milieu du volume et ainsi, le volume caché  (qui doit contenir un clone [...]
     <string lang="fr" key="OUTER_VOLUME_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Erreur : Si le volume externe est formaté en NTFS, il doit être au moins 110% (2,1 fois) plus grand que la partition système. La raison en est que NTFS stocke toujours les données internes au milieu du volume et ainsi, le volume caché  (qui doit contenir un clone de la partition système) ne peut résider que dans la seconde moitié du volume externe.\n\nNote : Le volume externe doit résider dans la même partition que le  [...]
@@ -702,10 +707,10 @@
     <string lang="fr" key="SYSTEM_PARTITION_NOT_ACTIVE">Erreur : Le système d'exploitation actuellement utilisé n'est pas installé sur la partition d'amorçage (la 1ère partition active). Ce n'est pas supporté.</string>
     <string lang="en" key="CONFIRM_FAT_FOR_FILES_OVER_4GB">You indicated that you intend to store files larger than 4 GB in this VeraCrypt volume. However, you chose the FAT file system, on which files larger than 4 GB cannot be stored.\n\nAre you sure you want to format the volume as FAT?</string>
     <string lang="fr" key="CANT_ACCESS_VOL">Erreur : Impossible d'accéder au volume !\n\nAssurez-vous que le volume existe, qu'il est n'est pas monté ou utilisé par le système ou une application, que vous avez la permission en lecture/écriture pour le volume et qu'il n'est pas protégé en écriture.</string>
-    <string lang="en" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL">Error: Cannot access the volume and/or obtain information about the volume.\n\nMake sure that the selected volume exists, that it is not being used by the system or applications, that you have read/write permission for the volume, and that it is not write-protected.</string>
-    <string lang="en" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL_ALT">Error: Cannot access the volume and/or obtain information about the volume. Make sure that the selected volume exists, that it is not being used by the system or applications, that you have read/write permission for the volume, and that it is not write-protected.\n\nIf the problem persists, it might help to follow the below steps.</string>
-    <string lang="en" key="INPLACE_ENC_GENERIC_ERR_ALT_STEPS">An error prevented VeraCrypt from encrypting the partition. Please try fixing any previously reported problems and then try again. If the problems persist, it might help to follow the below steps.</string>
-    <string lang="en" key="INPLACE_ENC_GENERIC_ERR_RESUME">An error prevented VeraCrypt from resuming the process of encryption of the partition.\n\nPlease try fixing any previously reported problems and then try resuming the process again. Note that the volume cannot be mounted until it has been fully encrypted.</string>
+    <string lang="fr" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL">Erreur : Impossible d'accéder au volume et/ou d'obtenir des informations sur le volume.\n\nAssurez-vous que le volume sélectionné existe, qu'il n'est pas utilisé par le système ou les applications, que vous avez l'autorisation de lecture/écriture sur le volume, et qu'il n'est pas protégé en écriture.</string>
+    <string lang="fr" key="INPLACE_ENC_CANT_ACCESS_OR_GET_INFO_ON_VOL_ALT">Erreur : Impossible d'accéder au volume et/ou d'obtenir des informations sur le volume.\n\nAssurez-vous que le volume sélectionné existe, qu'il n'est pas utilisé par le système ou les applications, que vous avez l'autorisation de lecture/écriture sur le volume, et qu'il n'est pas protégé en écriture.\n\nSi le problème persiste, suivez les étapes suivantes.</string>
+    <string lang="fr" key="INPLACE_ENC_GENERIC_ERR_ALT_STEPS">Une erreur a empêché VeraCrypt de chiffrer la partition. Essayez de résoudre les problèmes référencés antérieurement puis essayez à nouveau. Si les problèmes persistent, suivez les étapes ci-dessous.</string>
+    <string lang="fr" key="INPLACE_ENC_GENERIC_ERR_RESUME">Une erreur a empêché VeraCrypt de reprendre le processus de chiffrement de la partition.\n\nEssayez de résoudre les problèmes référencés antérieurement puis essayez à nouveau. Notez que le volume peut être monté que lorsqu'il aura été entièrement chiffré.</string>
     <string lang="fr" key="CANT_DISMOUNT_OUTER_VOL">Erreur : Impossible de démonter le volume externe !\n\nLe volume ne peut pas être démonté s'il contient des fichiers ou des dossiers utilisés par le système ou par une application.\n\nFermez tout programme qui utilise les fichiers ou les dossiers sur le volume puis cliquez sur 'Recommencer'.</string>
     <string lang="fr" key="CANT_GET_OUTER_VOL_INFO">Erreur : Impossible d'obtenir des informations sur le volume externe ! La création du volume ne peut pas continuer.</string>
     <string lang="fr" key="CANT_ACCESS_OUTER_VOL">Erreur : Impossible d'accéder au volume externe ! La création du volume ne peut pas continuer.</string>
@@ -755,38 +760,38 @@
     <string lang="fr" key="VOLUME_HEADER_DAYS"> (il y a %I64d jours)</string>
     <string lang="fr" key="VOLUME_FORMAT_VERSION">Version du format du volume</string>
     <string lang="fr" key="BACKUP_HEADER">En-tête de sauvegarde intégré</string>
-    <string lang="en" key="VC_BOOT_LOADER_VERSION">VeraCrypt Boot Loader Version</string>
+    <string lang="fr" key="VC_BOOT_LOADER_VERSION">Version du chargeur d'amorçage VeraCrypt</string>
     <string lang="fr" key="FIRST_AVAILABLE">1ère disponible</string>
-    <string lang="en" key="REMOVABLE_DISK">Removable Disk</string>
+    <string lang="fr" key="REMOVABLE_DISK">Disque amovible</string>
     <string lang="fr" key="HARDDISK">Disque dur</string>
     <string lang="fr" key="UNCHANGED">Inchangé</string>
     <string lang="fr" key="AUTODETECTION">Auto détection</string>
     <string lang="fr" key="SETUP_MODE_TITLE">Mode assistant</string>
     <string lang="fr" key="SETUP_MODE_INFO">Sélectionnez l'un des modes. Si vous ne savez pas lequel, utilisez celui par défaut.</string>
-    <string lang="en" key="SETUP_MODE_HELP_INSTALL">Select this option if you want to install VeraCrypt on this system.</string>
-    <string lang="en" key="SETUP_MODE_HELP_UPGRADE">Note: You can upgrade without decrypting even if the system partition/drive is encrypted or you use a hidden operating system.</string>
-    <string lang="en" key="SETUP_MODE_HELP_EXTRACT">If you select this option, all files will be extracted from this package but nothing will be installed on the system. Do not select it if you intend to encrypt the system partition or system drive. Selecting this option can be useful, for example, if you want to run VeraCrypt in so-called portable mode. VeraCrypt does not have to be installed on the operating system under which it is run. After all files are extracted, you can directly  [...]
+    <string lang="fr" key="SETUP_MODE_HELP_INSTALL">Sélectionnez cette option si vous voulez installer VeraCrypt sur ce système.</string>
+    <string lang="fr" key="SETUP_MODE_HELP_UPGRADE">Remarque : Vous pouvez mettre à niveau sans déchiffrage même si le système partition/disque est chiffré ou si vous utilisez un système d'exploitation caché.</string>
+    <string lang="fr" key="SETUP_MODE_HELP_EXTRACT">Si vous sélectionnez cette option, tous les fichiers seront extraits de ce paquet, mais rien ne sera installé sur le système. Ne la sélectionnez pas si vous voulez chiffrer la partition système ou le lecteur système. Cette option peut être utile, par exemple, si vous souhaitez exécuter VeraCrypt en mode portable. VeraCrypt n'a pas besoin d'être installé sur le système d'exploitation sous lequel il est exécuté. Une fois que tous les fich [...]
     <string lang="fr" key="SETUP_OPTIONS_TITLE">Options d'installation</string>
     <string lang="fr" key="SETUP_OPTIONS_INFO">Ici vous pouvez paramétrer diverses options pour contrôler l'installation.</string>
     <string lang="fr" key="SETUP_PROGRESS_TITLE">Installion</string>
     <string lang="fr" key="SETUP_PROGRESS_INFO">Patientez pendant l'installation de VeraCrypt.</string>
-    <string lang="en" key="SETUP_FINISHED_TITLE_DON">VeraCrypt has been successfully installed</string>
-    <string lang="en" key="SETUP_FINISHED_UPGRADE_TITLE_DON">VeraCrypt has been successfully upgraded</string>
-    <string lang="en" key="SETUP_FINISHED_INFO_DON">Please consider making a donation. You can click Finish anytime to close the installer.</string>
+    <string lang="fr" key="SETUP_FINISHED_TITLE_DON">VeraCrypt a été installé avec succès</string>
+    <string lang="fr" key="SETUP_FINISHED_UPGRADE_TITLE_DON">VeraCrypt a été mis à jour avec succès</string>
+    <string lang="fr" key="SETUP_FINISHED_INFO_DON">Veuillez envisager de faire un don. Vous pouvez cliquer sur terminer à tout moment pour fermer le programme d'installation.</string>
     <string lang="fr" key="EXTRACTION_OPTIONS_TITLE">Options d'extraction</string>
     <string lang="fr" key="EXTRACTION_OPTIONS_INFO">Ici vous pouvez paramétrer diverses options pour contrôler l'extraction.</string>
     <string lang="fr" key="EXTRACTION_PROGRESS_INFO">Patientez s'il vous plaît. L'extraction des fichiers est en court.</string>
-    <string lang="en" key="EXTRACTION_FINISHED_TITLE_DON">Files successfully extracted</string>
+    <string lang="fr" key="EXTRACTION_FINISHED_TITLE_DON">Les fichiers ont été extraits avec succès.</string>
     <string lang="fr" key="EXTRACTION_FINISHED_INFO">Tous les fichiers ont été extraits avec succès dans le répertoire de destination.</string>
     <string lang="fr" key="AUTO_FOLDER_CREATION">Si le dossier spécifié n'existe pas, il sera automatiquement créé.</string>
-    <string lang="en" key="SETUP_UPGRADE_DESTINATION">The VeraCrypt program files will be upgraded in the location where VeraCrypt is installed. If you need to select a different location, please uninstall VeraCrypt first.</string>
+    <string lang="fr" key="SETUP_UPGRADE_DESTINATION">Les fichiers de l'application VeraCrypt seront mis à jour dans l'emplacement où VeraCrypt est installé. Si vous devez sélectionner un emplacement différent, veuillez désinstaller d'abord VeraCrypt.</string>
     <string lang="fr" key="AFTER_UPGRADE_RELEASE_NOTES">Voulez-vous voir les notes sur la version actuelle (dernière version stable) de VeraCrypt ?</string>
     <string lang="fr" key="AFTER_INSTALL_TUTORIAL">Si vous n'avez jamais utilisé VeraCrypt, il est recommandé de lire le chapitre 'Beginner's Tutorial' du guide de l'utilisateur. Voulez-vous voir le didactitiel ?</string>
     <string lang="fr" key="SELECT_AN_ACTION">Sélectionnez une action à effectuer :</string>
     <string lang="fr" key="REPAIR_REINSTALL">Réparer/Réinstaller</string>
-    <string lang="en" key="UPGRADE">Upgrade</string>
+    <string lang="fr" key="UPGRADE">Mettre à niveau</string>
     <string lang="fr" key="UNINSTALL">Désinstaller</string>
-    <string lang="en" key="SETUP_ADMIN">To successfully install/uninstall VeraCrypt, you must have administrator privileges. Do you want to continue?</string>
+    <string lang="fr" key="SETUP_ADMIN">Pour installer/désinstaller correctement VeraCrypt, vous devez disposer des privilèges administrateur. Voulez-vous continuer ?</string>
     <string lang="fr" key="TC_INSTALLER_IS_RUNNING">L'installeur de VeraCrypt est actuellement exécuté sur votre système et réalise ou prépare l'installation ou la mise à jour de VeraCrypt. Avant de poursuivre, attendez qu'il termine ou se ferme. Si vous ne pouvez pas le fermer, redémarrez votre ordinateur avant de poursuivre.</string>
     <string lang="fr" key="INSTALL_FAILED">L'installation a échoué.</string>
     <string lang="fr" key="UNINSTALL_FAILED">La désinstallation a échoué.</string>
@@ -798,9 +803,9 @@
     <string lang="fr" key="EXTRACTION_FAILED">L'extraction a échoué.</string>
     <string lang="fr" key="ROLLBACK">L'installation est revenue à la version précédente.</string>
     <string lang="fr" key="INSTALL_OK">VeraCrypt a été installé avec succès</string>
-    <string lang="en" key="SETUP_UPDATE_OK">VeraCrypt has been successfully updated.</string>
-    <string lang="en" key="UPGRADE_OK_REBOOT_REQUIRED">VeraCrypt has been successfully upgraded. However, before you can start using it, the computer must be restarted.\n\nDo you want to restart it now?</string>
-    <string lang="en" key="SYS_ENC_UPGRADE_FAILED">Failed to upgrade VeraCrypt!\n\nIMPORTANT: Before you shut down or restart the system, we strongly recommend that you use System Restore (Windows Start menu > All programs > Accessories > System Tools > System Restore) to restore your system to the restore point named 'VeraCrypt installation'. If System Restore is not available, you should try installing the original or the new version of VeraCrypt again before you shut down  [...]
+    <string lang="fr" key="SETUP_UPDATE_OK">VeraCrypt a été mis à jour avec succès.</string>
+    <string lang="fr" key="UPGRADE_OK_REBOOT_REQUIRED">VeraCrypt a été mis à niveau avec succès. Toutefois, avant de commencer à l'utiliser, l'ordinateur doit être redémarré.\n\nSouhaitez-vous redémarrer maintenant ?</string>
+    <string lang="fr" key="SYS_ENC_UPGRADE_FAILED">Échec de mise à niveau de VeraCrypt!\n\nIMPORTANT : avant d'arrêter ou de redémarrer le système, nous recommandons fortement que vous utilisiez la restauration du système (menu Démarrer de Windows > tous les programmes > Accessoires > Outils système > restauration du système) pour restaurer votre système sur le point de restauration nommé « Installation de VeraCrypt ». Si la restauration du système n'est pas disponible, vous  [...]
     <string lang="fr" key="UNINSTALL_OK">VeraCrypt a été désinstallé avec succès.\n\nCliquez sur 'Terminer' pour supprimer l'installeur de VeraCrypt ainsi que le dossier %hs. Notez que le dossier ne sera pas supprimé s'il contient des fichiers qui n'ont pas été installés par l'installeur de VeraCrypt ou créés par VeraCrypt.</string>
     <string lang="fr" key="REMOVING_REG">Supprimer les entrées VeraCrypt de la base de registre</string>
     <string lang="fr" key="ADDING_REG">Ajoût d'une entrée à la base de registre</string>
@@ -818,7 +823,7 @@
     <string lang="fr" key="CANT_CREATE_FOLDER">Le dossier '%hs' n'a pas pû être créé</string>
     <string lang="fr" key="CLOSE_TC_FIRST">Le pilote de périphérique VeraCrypt n'a pas pû être déchargé.\n\nFermez toutes les fenêtres VeraCrypt en premier. Si cela n'aide pas, redémarrez Windows et essayez à nouveau.</string>
     <string lang="fr" key="DISMOUNT_ALL_FIRST">Tous les volumes VeraCrypt doivent être démontés avant d'installer ou de désinstaller VeraCrypt.</string>
-    <string lang="en" key="UNINSTALL_OLD_VERSION_FIRST">An obsolete version of VeraCrypt is currently installed on this system. It needs to be uninstalled before you can install this new version of VeraCrypt.\n\nAs soon as you close this message box, the uninstaller of the old version will be launched. Note that no volume will be decrypted when you uninstall VeraCrypt. After you uninstall the old version of VeraCrypt, run the installer of the new version of VeraCrypt again.</string>
+    <string lang="fr" key="UNINSTALL_OLD_VERSION_FIRST">Une version obsolète de VeraCrypt est installée sur ce système. Elle doit être désinstallée avant d'installer cette nouvelle version de VeraCrypt.\n\nDès que vous fermerez ce message, le programme de désinstallation de l'ancienne version sera lancé. Notez qu'aucun volume n'est déchiffré lorsque vous désinstallez VeraCrypt. Après avoir désinstallé l'ancienne version de VeraCrypt, réexécutez le programme d'installation de la nouvelle  [...]
     <string lang="fr" key="REG_INSTALL_FAILED">L'installation des entrées de la base de registre a échoué</string>
     <string lang="fr" key="DRIVER_INSTALL_FAILED">L'installation du pilote de périphérique a échoué. Redémarrez Windows et essayez à nouveau d'installer VeraCrypt.</string>
     <string lang="fr" key="STARTING_DRIVER">Exécution du pilote de périphérique VeraCrypt</string>
@@ -828,9 +833,9 @@
     <string lang="fr" key="REMOVING_DRIVER">Désinstallation du pilote de périphérique VeraCrypt</string>
     <string lang="fr" key="COM_REG_FAILED">L'enregistrement de la bibliothèque de support du Contrôle de Compte Utilisateur (UAC) a échoué.</string>
     <string lang="fr" key="COM_DEREG_FAILED">Le désenregistrement de la bibliothèque de support du Contrôle de Compte Utilisateur (UAC) a échoué.</string>
-    <string lang="en" key="TRAVELER_LIMITATIONS_NOTE">Note about portable mode:\n\nPlease note that the operating system requires drivers to be registered with it before they can be started. Hence, the VeraCrypt driver is not (and cannot be) fully portable (whereas the VeraCrypt applications are fully portable, i.e. they do not have to be installed or registered with the operating system). Also note that VeraCrypt needs a driver to provide transparent on-the-fly encryption/decryption.</string>
-    <string lang="en" key="TRAVELER_UAC_NOTE">Note that if you decide to run VeraCrypt in portable mode (as opposed to running an installed copy of VeraCrypt), the system will ask you for permission to run VeraCrypt (UAC prompt) every time you attempt to run it.\n\nThe reason is that when you run VeraCrypt in portable mode, VeraCrypt needs to load and start the VeraCrypt device driver. VeraCrypt needs a device driver to provide transparent on-the-fly encryption/decryption, and users with [...]
-    <string lang="en" key="CONTAINER_ADMIN_WARNING">Warning: This instance of the Volume Creation Wizard has administrator privileges.\n\nYour new volume may be created with permissions that will not allow you to write to the volume when it is mounted. If you want to avoid that, close this instance of the Volume Creation Wizard and launch a new one without administrator privileges.\n\nDo you want to close this instance of the Volume Creation Wizard?</string>
+    <string lang="fr" key="TRAVELER_LIMITATIONS_NOTE">Remarque sur le mode portable :\n\nLe système d'exploitation nécessite des pilotes enregistrés avant qu'ils puissent être démarrés. Par conséquent, le pilote VeraCrypt n'est pas (et ne peut pas l'être) entièrement portable (alors que les applications de VeraCrypt sont entièrement portables, c'est-à-dire qu'elles n'ont pas à être installées ou enregistrées avec le système d'exploitation). Notez également que VeraCrypt a besoin d'un pil [...]
+    <string lang="fr" key="TRAVELER_UAC_NOTE">Notez que si vous décidez d'exécuter VeraCrypt en mode portable (par opposition à l'utilisation d'une copie installée de VeraCrypt), le système vous demandera l'autorisation d'exécuter VeraCrypt (invite UAC) chaque fois que vous essayez de l'exécuter.\n\nLa raison est que, lorsque vous exécutez VeraCrypt en mode portable, VeraCrypt doit charger et démarrer le pilote de périphérique VeraCrypt. VeraCrypt a besoin d'un pilote de périphérique pou [...]
+    <string lang="fr" key="CONTAINER_ADMIN_WARNING">AVERTISSEMENT : Cette instance de l'Assistant de création de Volume a des privilèges administrateur.\n\nVotre nouveau volume peut être créé avec des autorisations qui ne vous permettent pas d'écrire sur le volume quand il est monté. Si vous voulez éviter cela, fermez cette instance de l'Assistant de création de Volume et lancez-en une nouvelle sans privilèges administrateur.\n\nVoulez-vous fermer cette instance de l'Assistant de créatio [...]
     <string lang="fr" key="CANNOT_DISPLAY_LICENSE">Erreur : Impossible d'afficher la licence.</string>
     <string lang="fr" key="OUTER_VOL_WRITE_PREVENTED">Externe(!)</string>
     <string lang="fr" key="DAYS">jours</string>
@@ -849,27 +854,27 @@
     <string lang="fr" key="PROCESSED_PORTION_X_PERCENT">%.3f%%</string>
     <string lang="fr" key="PROCESSED_PORTION_100_PERCENT">100%</string>
     <string lang="fr" key="PROGRESS_STATUS_WAITING">En attente</string>
-    <string lang="en" key="PROGRESS_STATUS_PREPARING">Preparing</string>
-    <string lang="en" key="PROGRESS_STATUS_RESIZING">Resizing</string>
+    <string lang="fr" key="PROGRESS_STATUS_PREPARING">Préparation</string>
+    <string lang="fr" key="PROGRESS_STATUS_RESIZING">Redimensionnement</string>
     <string lang="fr" key="PROGRESS_STATUS_ENCRYPTING">Chiffrement</string>
     <string lang="fr" key="PROGRESS_STATUS_DECRYPTING">Déchiffrement</string>
-    <string lang="en" key="PROGRESS_STATUS_FINALIZING">Finalizing</string>
+    <string lang="fr" key="PROGRESS_STATUS_FINALIZING">Finalisation</string>
     <string lang="fr" key="PROGRESS_STATUS_PAUSED">Pause</string>
     <string lang="fr" key="PROGRESS_STATUS_FINISHED">Terminé</string>
-    <string lang="en" key="PROGRESS_STATUS_ERROR">Error</string>
-    <string lang="en" key="FAVORITE_DISCONNECTED_DEV">Device disconnected</string>
-    <string lang="en" key="SYS_FAVORITE_VOLUMES_SAVED">System favorite volumes saved.\n\nTo enable mounting of system favorite volumes when the system starts, please select 'Settings' > 'System Favorite Volumes' > 'Mount system favorite volumes when Windows starts'.</string>
-    <string lang="en" key="FAVORITE_ADD_DRIVE_DEV_WARNING">The volume you are adding to favorites is neither a partition nor a dynamic volume. Therefore, VeraCrypt will be unable to mount this favorite volume if the device number changes.</string>
-    <string lang="en" key="FAVORITE_ADD_PARTITION_TYPE_WARNING">The volume you are adding to favorites is a partition not recognized by Windows.\n\nVeraCrypt will be unable to mount this favorite volume if the device number changes. Please set the type of the partition to a type recognized by Windows (use the SETID command of the Windows 'diskpart' tool). Then add the partition to favorites again.</string>
-    <string lang="en" key="FAVORITE_ARRIVAL_MOUNT_BACKGROUND_TASK_ERR">VeraCrypt Background Task is disabled or it is configured to exit when there are no mounted volumes (or VeraCrypt is running in portable mode). This may prevent your favorite volumes from being automatically mounted when devices hosting them get connected.\n\nNote: To enable the VeraCrypt Background Task, select Settings > Preferences and check the 'Enabled' checkbox in the section 'VeraCrypt Background Task'.</string>
-    <string lang="en" key="FAVORITE_ARRIVAL_MOUNT_NETWORK_PATH_ERR">A container stored in a remote filesystem shared over a network cannot be automatically mounted when its host device gets connected.</string>
-    <string lang="en" key="FAVORITE_ARRIVAL_MOUNT_DEVICE_PATH_ERR">The device displayed below is neither a partition nor a dynamic volume. Therefore, the volume hosted on the device cannot be automatically mounted when the device gets connected.</string>
-    <string lang="en" key="FAVORITE_ARRIVAL_MOUNT_PARTITION_TYPE_ERR">Please set the type of the partition displayed below to a type recognized by Windows (use the SETID command of the Windows 'diskpart' tool). Then remove the partition from favorites and add it again. This will enable the volume hosted on the device to be automatically mounted when the device gets connected.</string>
-    <string lang="en" key="FAVORITE_LABEL_DEVICE_PATH_ERR">The device displayed below is neither a partition nor a dynamic volume. Therefore, no label can be assigned to it.</string>
-    <string lang="en" key="FAVORITE_LABEL_PARTITION_TYPE_ERR">Please set the type of the partition displayed below to a type recognized by Windows (use the SETID command of the Windows 'diskpart' tool). Then remove the partition from favorites and add it again. This will enable VeraCrypt to assign a label to the partition.</string>
-    <string lang="en" key="SYSTEM_FAVORITE_NETWORK_PATH_ERR">Due to a Windows limitation, a container stored in a remote filesystem shared over a network cannot be mounted as a system favorite volume (however, it can be mounted as a non-system favorite volume when a user logs on).</string>
+    <string lang="fr" key="PROGRESS_STATUS_ERROR">Erreur</string>
+    <string lang="fr" key="FAVORITE_DISCONNECTED_DEV">Périphérique déconnecté</string>
+    <string lang="fr" key="SYS_FAVORITE_VOLUMES_SAVED">Volumes système préférés sauvegardés.\n\nPour permettre le montage des volumes système préférés lorsque le système démarre, veuillez sélectionner « Paramètres » > « Volumes système préférés » > « Montage des volumes système préférés au démarrage de Windows ».</string>
+    <string lang="fr" key="FAVORITE_ADD_DRIVE_DEV_WARNING">Le volume que vous ajoutez à vos favoris n'est ni une partition ni un volume dynamique. Par conséquent, VeraCrypt ne pourra pas monter ce volume préféré si le numéro de périphérique change.</string>
+    <string lang="fr" key="FAVORITE_ADD_PARTITION_TYPE_WARNING">Le volume que vous ajoutez à vos favoris est une partition non reconnue par Windows.\n\nVeraCrypt ne pourra pas monter ce volume préféré si le numéro de périphérique change. Veuillez définir le type de la partition par un type reconnu par Windows (utilisez la commande SETID de l'outil Windows « diskpart »). Puis ajouter à nouveau la partition aux favoris.</string>
+    <string lang="fr" key="FAVORITE_ARRIVAL_MOUNT_BACKGROUND_TASK_ERR">La tâche VeraCrypt en arrière-plan est désactivée ou VeraCrypt est configuré pour se fermer quand il n'y a aucun volume monté (ou VeraCrypt s'exécute en mode portable). Cela peut empêcher vos volumes préférés de monter automatiquement lorsque des dispositifs les hébergents sont connectés.\n\nRemarque : Pour activer VeraCrypt en tâche de fond, sélectionnez Paramètres > Préférences et cochez la case « Activé » dans l [...]
+    <string lang="fr" key="FAVORITE_ARRIVAL_MOUNT_NETWORK_PATH_ERR">Un conteneur stocké dans un système de fichiers distant partagé sur un réseau ne peut être monté automatiquement lorsque l'appareil hôte se connecte.</string>
+    <string lang="fr" key="FAVORITE_ARRIVAL_MOUNT_DEVICE_PATH_ERR">Le périphérique affiché ci-dessous n'est ni une partition ni un volume dynamique. Par conséquent, le volume hébergé sur le dispositif ne peut être monté automatiquement lorsque l'appareil est connecté.</string>
+    <string lang="fr" key="FAVORITE_ARRIVAL_MOUNT_PARTITION_TYPE_ERR">Veuillez associer le type de la partition affichée ci-dessous à un type reconnu par Windows (utilisez la commande SETID de l'outil Windows « diskpart »). Puis supprimer la partition des favoris et rajoutez-la. Cela permettra au volume hébergé sur le dispositif d'être monté automatiquement lorsque l'appareil est connecté.</string>
+    <string lang="fr" key="FAVORITE_LABEL_DEVICE_PATH_ERR">Le périphérique affiché ci-dessous n'est ni une partition ni un volume dynamique. Donc, aucune étiquette ne peut lui être assigné.</string>
+    <string lang="fr" key="FAVORITE_LABEL_PARTITION_TYPE_ERR">Veuillez associer le type de la partition affichée ci-dessous à un type reconnu par Windows (utilisez la commande SETID de l'outil Windows « diskpart »). Puis supprimer la partition des favoris et rajoutez-la. Cela permettra à VeraCrypt d'attribuer une étiquette à la partition.</string>
+    <string lang="fr" key="SYSTEM_FAVORITE_NETWORK_PATH_ERR">En raison d'une limitation de Windows, un conteneur stocké dans un système de fichiers distant, partagé sur un réseau, ne peut pas être monté comme un volume système préféré (Cependant, il peut être monté comme un volume non-système préféré lorsqu'un utilisateur ouvre une session).</string>
     <string lang="fr" key="ENTER_PASSWORD_FOR">Entrez le mot de passe pour %hs</string>
-    <string lang="en" key="ENTER_PASSWORD_FOR_LABEL">Enter password for '%s'</string>
+    <string lang="fr" key="ENTER_PASSWORD_FOR_LABEL">Entrez un mot de passe pour '%s'</string>
     <string lang="fr" key="ENTER_NORMAL_VOL_PASSWORD">Entrez le mot de passe pour le volume normal/externe</string>
     <string lang="fr" key="ENTER_HIDDEN_VOL_PASSWORD">Entrez le mot de passe pour le volume caché</string>
     <string lang="fr" key="ENTER_HEADER_BACKUP_PASSWORD">Entrez le mot de passe pour l'en-tête stocké dans un fichier de sauvegarde</string>
@@ -896,17 +901,17 @@
     <string lang="fr" key="BACKUP_HEADER_NOT_FOR_SYS_DEVICE">Vous essayez de sauvegarder l'en-tête de la partition/du disque système. Cela n'est pas autorisé. Toute opération de sauvegarde/restauration concernant la partition/le disque système ne peut être effectué qu'en utilisant le disque de secours VeraCrypt.\n\nVoulez-vous créer un disque de secours VeraCrypt ?</string>
     <string lang="fr" key="RESTORE_HEADER_NOT_FOR_SYS_DEVICE">Vous essayez de restaurer l'en-tête d'un volume virtuel VeraCrypt mais vous avez sélectionné la partition/le disque système.  Cela n'est pas autorisé. Toute opération de sauvegarde/restauration concernant la partition/le disque système ne peut être effectué qu'en utilisant le disque de secours VeraCrypt.\n\nVoulez-vous créer un disque de secours VeraCrypt ?</string>
     <string lang="fr" key="RESCUE_DISK_NON_WIZARD_CREATION_SELECT_PATH">Après avoir cliqué sur 'OK', vous sélectionnerez un nom de fichier et un emplacement pour la nouvelle image ISO du disque de secours VeraCrypt.</string>
-    <string lang="en" key="RESCUE_DISK_NON_WIZARD_CREATION_BURN">The Rescue Disk image has been created and stored in this file:\n%hs\n\nNow you need to burn the Rescue Disk image to a CD or DVD.\n\nIMPORTANT: Note that the file must be written to the CD/DVD as an ISO disk image (not as an individual file). For information on how to do so, please refer to the documentation of your CD/DVD recording software.\n\nAfter you burn the Rescue Disk, select 'System' > 'Verify Rescue Disk' to v [...]
-    <string lang="en" key="RESCUE_DISK_NON_WIZARD_CREATION_WIN_ISOBURN">The Rescue Disk image has been created and stored in this file:\n%hs\n\nNow you need to burn the Rescue Disk image to a CD or DVD.\n\nDo you want to launch the Microsoft Windows Disc Image Burner now?\n\nNote: After you burn the Rescue Disk, select 'System' > 'Verify Rescue Disk' to verify that it has been correctly burned.</string>
+    <string lang="fr" key="RESCUE_DISK_NON_WIZARD_CREATION_BURN">L'image du disque de secours a été créée et stockée dans ce fichier :\n%hs\n\nMaintenant vous avez besoin de graver l'image du disque de secours sur un CD ou DVD.\n\nIMPORTANT : Notez que le fichier doit être écrit sur le CD/DVD sous forme d'image de disque ISO (pas dans un fichier individuel). Pour plus d'informations sur la façon de le faire, veuillez vous reporter à la documentation d'utilisation de votre logiciel de gra [...]
+    <string lang="fr" key="RESCUE_DISK_NON_WIZARD_CREATION_WIN_ISOBURN">L'image du disque de secours a été créée et stockée dans ce fichier :\n%hs\n\nMaintenant vous avez besoin de graver l'image du disque de secours sur un CD ou un DVD.\n\nSouhaitez-vous lancer maintenant le logiciel de gravure Microsoft ?\n\nRemarque : Après avoir graver le disque de secours, sélectionnez « Système » > « Vérifier le disque de secours » pour vérifier qu'il a été graver correctement.</string>
     <string lang="fr" key="RESCUE_DISK_NON_WIZARD_CHECK_INSERT">Insérez votre disque de secours VeraCrypt dans votre lecteur de CD/DVD et cliquez sur 'OK' pour le vérifier.</string>
     <string lang="fr" key="RESCUE_DISK_NON_WIZARD_CHECK_PASSED">Le disque de secours VeraCrypt a été vérifié avec succès.</string>
     <string lang="fr" key="RESCUE_DISK_NON_WIZARD_CHECK_FAILED">Impossible de vérifier que le disque de secours a été correctement gravé.\n\nSi vous avez gravé le disque de secours, éjectez-le et réinsérez-le puis essayez à nouveau. Si cela n'aide pas, essayez un autre logiciel de gravure ou un autre support.\n\nSi vous essayez de vérifier un disque de secours créé pour une clé principale différente, un mot de passe différent, etc... dans ce cas la vérification échouera à tous les coups. [...]
     <string lang="fr" key="ERROR_CREATING_RESCUE_DISK">Erreur lors de la création du disque de secours VeraCrypt.</string>
     <string lang="fr" key="CANNOT_CREATE_RESCUE_DISK_ON_HIDDEN_OS">Le disque de secours VeraCrypt ne peut pas être créé quand un système d'exploitation caché est en cours d'exécution.\n\nPour créer un disque de secours VeraCrypt, démarrez le système d'exploitation leurre puis sélectionnez 'Système' > 'Créer un disque de secours'.</string>
-    <string lang="en" key="RESCUE_DISK_CHECK_FAILED">Cannot verify that the Rescue Disk has been correctly burned.\n\nIf you have burned the Rescue Disk, please eject and reinsert the CD/DVD; then click Next to try again. If this does not help, please try another medium%s.\n\nIf you have not burned the Rescue Disk yet, please do so, and then click Next.\n\nIf you attempted to verify a VeraCrypt Rescue Disk created before you started this wizard, please note that such Rescue Disk cannot b [...]
-    <string lang="en" key="RESCUE_DISK_CHECK_FAILED_SENTENCE_APPENDIX"> and/or other CD/DVD recording software</string>
+    <string lang="fr" key="RESCUE_DISK_CHECK_FAILED">Impossible de vérifier que le disque de secours a été correctement gravé.\n\nSi vous avez gravé le disque de secours, éjectez-le et réinsérez-le CD/DVD ; puis cliquez sur Suivant pour essayer à nouveau. Si cela ne fonctionne pas, essayez avec un autre media%s.\n\nSi vous n'avez pas encore gravé le disque de secours, veuillez le faire et  cliquez sur Suivant.\n\nSi vous a tenté de vérifier un disque de secours VeraCrypt créé avant de la [...]
+    <string lang="fr" key="RESCUE_DISK_CHECK_FAILED_SENTENCE_APPENDIX"> et/ou autres logiciels de gravure de CD/DVD</string>
     <string lang="fr" key="SYSTEM_FAVORITES_DLG_TITLE">VeraCrypt - Volumes système favoris</string>
-    <string lang="en" key="SYS_FAVORITES_HELP_LINK">What are system favorite volumes?</string>
+    <string lang="fr" key="SYS_FAVORITES_HELP_LINK">Quels sont les volumes systèmes préférés ?</string>
     <string lang="fr" key="SYS_FAVORITES_REQUIRE_PBA">La partition/le lecteur système ne semble pas être chiffré.\n\nLes volumes système favoris peuvent être montés en utilisant seulement un mot de passe d’authentification de pré-amorçage. Par conséquent, pour activer l’utilisation des volumes système favoris, vous devez d’abord chiffrer la partition/le lecteur système.</string>
     <string lang="fr" key="DISMOUNT_FIRST">Démontez le volume avant de commencer</string>
     <string lang="fr" key="CANNOT_SET_TIMER">Erreur : Impossible de paramétrer l'horloge.</string>
@@ -923,20 +928,20 @@
     <string lang="fr" key="DIGIT_ONE">1</string>
     <string lang="fr" key="TWO_OR_MORE">2 ou plus</string>
     <string lang="fr" key="MODE_OF_OPERATION">Mode opératoire</string>
-    <string lang="en" key="LABEL_ITEM">Label:   </string>
-    <string lang="en" key="SIZE_ITEM">Size:   </string>
-    <string lang="en" key="PATH_ITEM">Path:   </string>
-    <string lang="en" key="DRIVE_LETTER_ITEM">Drive Letter:   </string>
+    <string lang="fr" key="LABEL_ITEM">Label :   </string>
+    <string lang="fr" key="SIZE_ITEM">Taille :   </string>
+    <string lang="fr" key="PATH_ITEM">Chemin :   </string>
+    <string lang="fr" key="DRIVE_LETTER_ITEM">Unité logique :   </string>
     <string lang="fr" key="UNSUPPORTED_CHARS_IN_PWD">Erreur : Le mot de passe ne doit contenir que des caractères ASCII.\n\nLes caractères non-ASCII peuvent empêcher le volume d'être montés si la configuration de votre système change.\n\nLes caractères suivants sont autorisés :\n\n! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~</string>
     <string lang="fr" key="UNSUPPORTED_CHARS_IN_PWD_RECOM">Avertissement : Le mot de passe contient certains caractères non-ASCII. Cela peut empêcher le montage du volume si la configuration de votre système change.\n\nVous devriez remplacer les caractères non-ASCII du mot de passe par des caractères ASCII. Pour cela cliquez sur 'Volumes' -> 'Modifier le mot de passe du volume'.\n\nLes caractères ASCII sont les suivants :\n\n! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; &l [...]
-    <string lang="en" key="EXE_FILE_EXTENSION_CONFIRM">WARNING: We strongly recommend that you avoid file extensions that are used for executable files (such as .exe, .sys, or .dll) and other similarly problematic file extensions. Using such file extensions causes Windows and antivirus software to interfere with the container, which adversely affects the performance of the volume and may also cause other serious problems.\n\nWe strongly recommend that you remove the file extension or cha [...]
-    <string lang="en" key="EXE_FILE_EXTENSION_MOUNT_WARNING">WARNING: This container has a file extension that is used for executable files (such as .exe, .sys, or .dll) or some other file extension that is similarly problematic. It will very likely cause Windows and antivirus software to interfere with the container, which will adversely affect the performance of the volume and may also cause other serious problems.\n\nWe strongly recommend that you remove the file extension of the cont [...]
+    <string lang="fr" key="EXE_FILE_EXTENSION_CONFIRM">AVERTISSEMENT : Nous recommandons fortement que vous évitiez les extensions de fichiers qui sont utilisées pour les fichiers exécutables (tels que .exe, .sys ou .dll) et d'autres extensions de fichiers de même teneur. En utilisant ces extensions de fichier, Windows et les logiciels antivirus provoquent des interférences avec le conteneur, ce qui compromet les performances du volume et peut également causer d'autres graves problems.\n [...]
+    <string lang="fr" key="EXE_FILE_EXTENSION_MOUNT_WARNING">AVERTISSEMENT : Nous recommandons fortement que vous évitiez les extensions de fichiers qui sont utilisées pour les fichiers exécutables (tels que .exe, .sys ou .dll) et d'autres extensions de fichiers de même teneur. En utilisant ces extensions de fichier, Windows et les logiciels antivirus provoquent des interférences avec le conteneur, ce qui compromet les performances du volume et peut également causer d'autres graves probl [...]
     <string lang="fr" key="HOMEPAGE">Site Web</string>
     <string lang="fr" key="LARGE_IDE_WARNING_XP">AVERTISSEMENT : Il semble que vous n'avez pas appliqué de Service Pack à votre installation Windows. Vous ne devriez pas écrire sur des disques IDE plus grands que 128 Go sous Windows XP où le Service Pack 1 ou ultérieur n'est pas installé ! Si vous le faites, les données du disque (quelles qu'elles soient) peuvent être corrompues. Notez qu'il s'agit d'une limitation de Windows et non un bogue de VeraCrypt.</string>
     <string lang="fr" key="LARGE_IDE_WARNING_2K">AVERTISSEMENT : Il semble que vous n'avez pas appliqué le Service Pack 3 ou ultérieur à votre installation Windows. Vous ne devriez pas écrire sur des disques IDE plus grands que 128 Go sous Windows 2000 où le Service Pack 3 ou ultérieur n'est pas installé ! Si vous le faites, les données du disque (quelles qu'elles soient) peuvent être corrompues. Notez qu'il s'agit d'une limitation de Windows et non un bogue de VeraCrypt.\n\nNote : Vous  [...]
-    <string lang="fr" key="LARGE_IDE_WARNING_2K_REGISTRY">AVERTISSEMENT : Le support LBA ATAPI 48 bits est désactivé sur votre système. Aussi, vous ne devriez pas pouvoir écrire sur des disques IDE plus grands que 128 Go ! Si vous le faites, les données sur le disque (que ce soit un volume VeraCrypt ou non) pourront être corrompues. Notez qu'il s'agit d'une limitation de Windows.\n\nPour activer le support LBA 48 bits, ajouter la valeur de registre 'EnableBigLba' à la clé de registre HKE [...]
+    <string lang="fr" key="LARGE_IDE_WARNING_2K_REGISTRY">AVERTISSEMENT : Le support LBA ATAPI 48 bits est désactivé sur votre système. Aussi, vous ne devriez pas pouvoir écrire sur des disques IDE plus grands que 128 Go ! Si vous le faites, les données sur le disque (que ce soit un volume VeraCrypt ou non) pourront être corrompues. Notez qu'il s'agit d'une limitation de Windows.\n\nPour activer le support LBA 48 bits, ajouter la valeur de registre 'EnableBigLba' à la clé de registre HKE [...]
     <string lang="fr" key="VOLUME_TOO_LARGE_FOR_FAT32">Erreur : Les fichiers plus grands que 4 Go ne peuvent pas être stockés sur un système de fichiers FAT32. De plus les volumes VeraCrypt hébergeant un fichier (conteneurs) stockés sur des système en FAT32 ne peuvent être plus grands que 4 Go.\n\nSi vous désirez un volume plus grand, créez-le sur un système NTFS (ou sur un système de fichiers exFAT si vous utilisez Windows Vista SP1 ou ultérieur) ou au lieu de créer un volume hébergeant [...]
-    <string lang="en" key="VOLUME_TOO_LARGE_FOR_WINXP">Warning: Windows XP does not support files larger than 2048 GB (it will report that "Not enough storage is available"). Therefore, you cannot create a file-hosted VeraCrypt volume (container) larger than 2048 GB under Windows XP.\n\nNote that it is still possible to encrypt the entire drive or create a partition-hosted VeraCrypt volume larger than 2048 GB under Windows XP.</string>
+    <string lang="fr" key="VOLUME_TOO_LARGE_FOR_WINXP">AVERTISSEMENT : Windows XP ne supporte pas les fichiers supérieurs à 2048 Go (il vous signalera que "L'espace disque est insuffisant"). Par conséquent, vous ne pouvez  pas créer, sous Windows XP, un fichier hébergé sur un volume VeraCrypt (conteneur) supérieur à 2048 Go.\n\nRemarque : Il est encore possible de chiffrer la totalité du disque ou de créer une partition hébergée sur un volume VeraCrypt supérieure à 2048 Go sous Windows X [...]
     <string lang="fr" key="FREE_SPACE_FOR_WRITING_TO_OUTER_VOLUME">AVERTISSEMENT : Si plus tard vous désirez ajouter plus de données/de fichiers au volume externe, vous devriez choisir une taille plus petite pour le volume caché.\n\nÊtes-vous sûr de vouloir continuer avec la taille spécifiée ?</string>
     <string lang="fr" key="NO_VOLUME_SELECTED">Aucune sélection.\n\nCliquez sur 'Fichier...' ou 'Péripherique...' pour sélectionner un volume.</string>
     <string lang="fr" key="NO_SYSENC_PARTITION_SELECTED">Aucune partition n'est sélectionnée.\n\nCliquez sur 'Périphérique...' pour choisir une partition démontée qui nécessite normalement une authentification lors du pré-amorçage (par exemple, une partition localisée sur un disque système chiffré d'un autre système d'exploitation, qui n'est pas lancé ou la partition système chiffrée d'un autre système d'exploitation).\n\nNote : La partition sélectionnée sera montée comme un volume VeraC [...]
@@ -955,37 +960,37 @@
     <string lang="fr" key="CANNOT_USE_RESERVED_KEY">Erreur : Ce raccourci est réservé. Choisissez-en un autre.</string>
     <string lang="fr" key="SHORTCUT_ALREADY_IN_USE">Erreur : Raccourci déjà utilisé.</string>
     <string lang="fr" key="HOTKEY_REGISTRATION_ERROR">AVERTISSEMENT : Un ou plusieurs raccourcis système de VeraCrypt ne fonctionneront pas !\n\nAssurez-vous que d'autres applications et que le système d'exploitation n'utilisent pas le(s) même(s) raccourci(s) que VeraCrypt.</string>
-    <string lang="en" key="PAGING_FILE_CREATION_PREVENTED">Paging file creation has been prevented.\n\nPlease note that, due to Windows issues, paging files cannot be located on non-system VeraCrypt volumes (including system favorite volumes). VeraCrypt supports creation of paging files only on an encrypted system partition/drive.</string>
+    <string lang="fr" key="PAGING_FILE_CREATION_PREVENTED">La création du fichier de pagination a été empêchée.\n\nEn raison de problèmes de Windows, les fichiers de pagination ne peuvent pas être situés sur des volumes VeraCrypt  non-système (y compris les volumes système préférés). VeraCrypt prend en charge la création de fichiers de pagination uniquement sur un système de partition/lecteur chiffré.</string>
     <string lang="fr" key="SYS_ENC_HIBERNATION_PREVENTED">Une erreur ou une incompatibilité empêche VeraCrypt de chiffrer le fichier de mise en veille prolongée. La mise en veille prolongée n'a donc pas eu lieu.\n\nNote : Quand un ordinateur passe en mode de veille prolongée (ou en veille), le contenu de sa mémoire système est écrit dans un fichier de stockage sur votre disque système. VeraCrypt ne serait pas en mesure d'empêcher les clés de chiffrement et le contenu de fichiers sensible [...]
-    <string lang="en" key="HIDDEN_OS_HIBERNATION_PREVENTED">Hibernation has been prevented.\n\nVeraCrypt does not support hibernation on hidden operating systems that use an extra boot partition. Please note that the boot partition is shared by both the decoy and the hidden system. Therefore, in order to prevent data leaks and problems while resuming from hibernation, VeraCrypt has to prevent the hidden system from writing to the shared boot partition and from hibernating.</string>
-    <string lang="en" key="VOLUME_MOUNTED_AS_DRIVE_LETTER_X_DISMOUNTED">VeraCrypt volume mounted as %c: has been dismounted.</string>
-    <string lang="en" key="MOUNTED_VOLUMES_DISMOUNTED">VeraCrypt volumes have been dismounted.</string>
-    <string lang="en" key="VOLUMES_DISMOUNTED_CACHE_WIPED">VeraCrypt volumes have been dismounted and password cache has been wiped.</string>
-    <string lang="en" key="SUCCESSFULLY_DISMOUNTED">Successfully dismounted</string>
-    <string lang="en" key="CONFIRM_BACKGROUND_TASK_DISABLED">WARNING: If the VeraCrypt Background Task is disabled, the following functions will be disabled:\n\n1) Hot keys\n2) Auto-dismount (e.g., upon logoff, inadvertent host device removal, time-out, etc.)\n3) Auto-mount of favorite volumes\n4) Notifications (e.g., when damage to hidden volume is prevented)\n5) Tray icon\n\nNote: You can shut down the Background Task anytime by right-clicking the VeraCrypt tray icon and selecting 'Exi [...]
+    <string lang="fr" key="HIDDEN_OS_HIBERNATION_PREVENTED">L'hibernation a été empêchée.\n\nVeraCrypt ne supporte pas la mise en veille prolongée sur les systèmes d'exploitation cachés qui utilisent une partition de démarrage supplémentaires. La partition de démarrage est partagée par le leurre et le système caché. Par conséquent, afin d'éviter les fuites de données et les problèmes à la sortie de l'hibernation, VeraCrypt a empêché le système caché d'écrire sur la partition de démarrage [...]
+    <string lang="fr" key="VOLUME_MOUNTED_AS_DRIVE_LETTER_X_DISMOUNTED">Le volume VeraCrypt monté en tant que %c: a été démontée.</string>
+    <string lang="fr" key="MOUNTED_VOLUMES_DISMOUNTED">Les volumes VeraCrypt ont été démontés.</string>
+    <string lang="fr" key="VOLUMES_DISMOUNTED_CACHE_WIPED">Les volumes VeraCrypt ont été démontés et le cache de mot de passe a été nettoyé.</string>
+    <string lang="fr" key="SUCCESSFULLY_DISMOUNTED">Démonté avec succès.</string>
+    <string lang="fr" key="CONFIRM_BACKGROUND_TASK_DISABLED">AVERTISSEMENT : Si la tâche d'arrière-plan VeraCrypt est désactivée, les fonctions suivantes seront désactivées : \n\n1) Les raccourcis clavier\n2) Le démontage automatique des volumes (p. ex., sur fermeture de session, suppression du périphérique hôte involontaire, délai d'attente, etc.)\n3) Montage automatique des volumes préférés\n4) Les notifications (par exemple, les dommages empêchés pour le volume caché) \n5) L'icône de  [...]
     <string lang="fr" key="CONFIRM_NO_FORCED_AUTODISMOUNT">AVERTISSEMENT : Si cette option est désactivée, les volumes contenant des fichiers/des répertoires ouverts ne pourront pas être démontés automatiquement.\n\nÊtes-vous sûr de vouloir désactiver cette option ?</string>
     <string lang="fr" key="WARN_PREF_AUTO_DISMOUNT">AVERTISSEMENT : Les volumes contenant des fichiers/des répertoires ouverts ne seront PAS démontés automatiquement.\n\nPour éviter cela, activez l'option suivante : 'Forcer le démontage automatique même s'il y a encore des fichiers ouverts'</string>
-    <string lang="en" key="WARN_PREF_AUTO_DISMOUNT_ON_POWER">WARNING: When the notebook battery power is low, Windows may omit sending the appropriate messages to running applications when the computer is entering power saving mode. Therefore, VeraCrypt may fail to auto-dismount volumes in such cases.</string>
-    <string lang="en" key="NONSYS_INPLACE_ENC_RESUME_PROMPT">You have scheduled the process of encryption of a partition/volume. The process has not been completed yet.\n\nDo you want to resume the process now?</string>
+    <string lang="fr" key="WARN_PREF_AUTO_DISMOUNT_ON_POWER">AVERTISSEMENT : Lorsque la batterie de l'ordinateur portable est faible, Windows peut omettre d'envoyer les messages appropriés pour l'exécution d'applications lorsque l'ordinateur est entré mode économie. Par conséquent, dans un tel cas, VeraCrypt peut ne pas démonter automatiquement les volumes.</string>
+    <string lang="fr" key="NONSYS_INPLACE_ENC_RESUME_PROMPT">Vous avez planifié le processus de chiffrement d'une partition ou d'un volume. Le processus n'a pas encore été terminé.\n\nSouhaitez-vous reprendre le processus maintenant ?</string>
     <string lang="fr" key="SYSTEM_ENCRYPTION_RESUME_PROMPT">Vous avez planifié le processus de chiffrement ou de déchiffrement pour la partition/le disque système. Le processus n'est pas encore terminé.\n\nVoulez-vous démarrer (reprendre) le processus maintenant ?</string>
-    <string lang="en" key="ASK_NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL">Do you want to be prompted about whether you want to resume the currently scheduled processes of encryption of non-system partitions/volumes?</string>
-    <string lang="en" key="KEEP_PROMPTING_ME">Yes, keep prompting me</string>
-    <string lang="en" key="DO_NOT_PROMPT_ME">No, do not prompt me</string>
-    <string lang="en" key="NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL_NOTE">IMPORTANT: Keep in mind that you can resume the process of encryption of any non-system partition/volume by selecting 'Volumes' > 'Resume Interrupted Process' from the menu bar of the main VeraCrypt window.</string>
+    <string lang="fr" key="ASK_NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL">Voulez-vous être averti de la reprise des processus actuellement prévus de chiffrement de partitions/volumes non-système ?</string>
+    <string lang="fr" key="KEEP_PROMPTING_ME">Oui, veuillez m'avertir.</string>
+    <string lang="fr" key="DO_NOT_PROMPT_ME">Non, ne m'avertissez pas.</string>
+    <string lang="fr" key="NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL_NOTE">IMPORTANT : N'oubliez pas que vous pouvez reprendre le processus de chiffrement de partition/volume non-système en sélectionnant « Volumes » > « Reprendre le processus interrompu » de la barre de menus de la fenêtre principale de VeraCrypt.</string>
     <string lang="fr" key="SYSTEM_ENCRYPTION_SCHEDULED_BUT_PBA_FAILED">Vous avez planifié le processus de chiffrement ou de déchiffrement de la partition/du disque système. Cependant l'authentification lors du pré-amorçage a échoué (ou a été contournée).\n\nSi vous avez déchiffré la partition/le disque système dans l'environnement de pré-amorçage, vous aurez peut-être à finaliser le processus en sélectionnant 'Système' > 'Déchiffrer définitivement la partition/le disque système' depui [...]
-    <string lang="en" key="CONFIRM_EXIT">WARNING: If VeraCrypt exits now, the following functions will be disabled:\n\n1) Hot keys\n2) Auto-dismount (e.g., upon logoff, inadvertent host device removal, time-out, etc.)\n3) Auto-mount of favorite volumes\n4) Notifications (e.g., when damage to hidden volume is prevented)\n\nNote: If you do not wish VeraCrypt to run in the background, disable the VeraCrypt Background Task in the Preferences (and, if necessary, disable the automatic start of [...]
+    <string lang="fr" key="CONFIRM_EXIT">AVERTISSEMENT : Si vous quittez maintenant VeraCrypt, les fonctions suivantes seront désactivées : \n\n1) Les raccourcis clavier\n2) Le démontage automatique des volumes (p. ex., sur fermeture de session, suppression du périphérique hôte involontaire, délai d'attente, etc.)\n3) Montage automatique des volumes préférés\n4) Les notifications (par exemple, les dommages empêchés pour le volume caché) \n5) L'icône de la zone de notification\n\nRemarque [...]
     <string lang="fr" key="CONFIRM_EXIT_UNIVERSAL">Quitter ?</string>
     <string lang="fr" key="CHOOSE_ENCRYPT_OR_DECRYPT">VeraCrypt n'a pas assez d'information pour déterminer s'il faut chiffrer ou déchiffrer.</string>
     <string lang="fr" key="CHOOSE_ENCRYPT_OR_DECRYPT_FINALIZE_DECRYPT_NOTE">VeraCrypt n'a pas assez d'information pour déterminer s'il faut chiffrer ou déchiffrer.\n\nNote : Si vous avez déchiffré la partition/le disque système dans l'environnement de pré-amorçage, vous aurez peut-être à finaliser le processus en cliquant 'Déchiffrer'.</string>
-    <string lang="en" key="NONSYS_INPLACE_ENC_DEFER_CONFIRM">Do you want to interrupt and postpone the process of encryption of the partition/volume?\n\nNote: Keep in mind that the volume cannot be mounted until it has been fully encrypted. You will be able to resume the process of encryption and it will continue from the point it was stopped. You can do so, for example, by selecting 'Volumes' > 'Resume Interrupted Process' from the menu bar of the main VeraCrypt window.</string>
+    <string lang="fr" key="NONSYS_INPLACE_ENC_DEFER_CONFIRM">Vous souhaitez interrompre et reporter le processus de chiffrement de la partition ou du volume? \n\nRemarque : N'oubliez pas que le volume ne peut pas être monté jusqu'à ce qu'il ait été entièrement chiffré. Vous pourrez reprendre le processus de chiffrement et au point où il s'est arrêté. Vous pouvez le faire, par exemple, en sélectionnant « Volumes » > « Reprendre le rocessus interrompu » de la barre de menus de la fenêtr [...]
     <string lang="fr" key="SYSTEM_ENCRYPTION_DEFER_CONFIRM">Voulez-vous interrompre et repousser le processus de chiffrement de la partition/du disque système ?\n\nNote : Vous pourrez reprendre le processus et il continuera à partir de l'endroit où il s'est arrêté. Vous pouvez le faire en sélectionnant 'Système' > 'Reprendre le processus interrompu' depuis les menus de la fenêtre principale de VeraCrypt. Si vous désirez arrêter totalement le processus de chiffrement ou l'inverser, sél [...]
     <string lang="fr" key="SYSTEM_DECRYPTION_DEFER_CONFIRM">Voulez-vous interrompre et repousser le processus de déchiffrement de la partition/du disque système?\n\nNote : Vous pourrez reprendre le processus et il continuera à partir de l'endroit où il s'est arrêté. Vous pouvez le faire en sélectionnant 'Système' > 'Reprendre le processus interrompu' depuis les menus de la fenêtre principale de VeraCrypt. Si vous désirez arrêter totalement le processus de déchiffrement (et démarrer le [...]
     <string lang="fr" key="FAILED_TO_INTERRUPT_SYSTEM_ENCRYPTION">Erreur : L'interruption du processus de chiffrement/déchiffrement de la partition/du disque système a échoué.</string>
-    <string lang="en" key="FAILED_TO_INTERRUPT_WIPING">Error: Failed to interrupt the process of wiping.</string>
+    <string lang="fr" key="FAILED_TO_INTERRUPT_WIPING">Erreur: Impossible d'interrompre le processus de nettoyage.</string>
     <string lang="fr" key="FAILED_TO_RESUME_SYSTEM_ENCRYPTION">Erreur : La reprise du processus de chiffrement/déchiffrement de la partition/du disque système a échoué.</string>
-    <string lang="en" key="FAILED_TO_START_WIPING">Error: Failed to start the process of wiping.</string>
+    <string lang="fr" key="FAILED_TO_START_WIPING">Erreur: Impossible de démarrer le processus de nettoyage.</string>
     <string lang="fr" key="INCONSISTENCY_RESOLVED">Incohérence résolue.\n\n\n(Si vous avez rapporté un bogue en rapport avec cette incohérence, n'oubliez pas d'inclure les informations techniques suivantes dans le rapport de bogue : %hs)</string>
-    <string lang="en" key="UNEXPECTED_STATE">Error: Unexpected state.\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs)</string>
+    <string lang="fr" key="UNEXPECTED_STATE">Erreur : État inattendu.\n\n\n (si vous signalez un bogue à cet effet, veuillez inclure les informations techniques suivantes dans le raport :\n%hs)</string>
     <string lang="fr" key="NOTHING_TO_RESUME">Il n'y a aucun processus/aucune tâche à reprendre.</string>
     <string lang="fr" key="HIDVOL_PROT_BKG_TASK_WARNING">AVERTISSEMENT : La tâche de fond VeraCrypt est désactivée. Après avoir quitté VeraCrypt, vous ne serez pas notifié si des dommages sur le volume caché sont évités.\n\nNote : Vous pouvez fermer la tâche de fond à tout moment en cliquant droit sur l'icône VeraCrypt et en sélectionnant 'Quitter'.\n\nActiver la tâche de fond VeraCrypt ?</string>
     <string lang="fr" key="LANG_PACK_VERSION">Version du fichier de langue : %s</string>
@@ -999,79 +1004,79 @@
     <string lang="fr" key="DISMOUNT_ALL_TC_VOLUMES">Démonter tous les volumes VeraCrypt</string>
     <string lang="fr" key="UAC_INIT_ERROR">VeraCrypt n'a pas pû obtenir les privilèges d'administrateur.</string>
     <string lang="fr" key="ERR_ACCESS_DENIED">Accès refusé par le système d'exploitation.\n\nCause possible : Le système d'exploitation nécessite que vous ayez la permission en lecture/écriture (ou des privilèges d'administrateur) pour certains dossiers, fichiers et périphériques pour être autorisé à y lire/écrire des données. Normalement un utilisateur sans privilèges d'administrateur est autorisé à créer, lire et modifier les fichiers de son dossier Mes Documents.</string>
-    <string lang="en" key="SECTOR_SIZE_UNSUPPORTED">Error: The drive uses an unsupported sector size.\n\nIt is currently not possible to create partition/device-hosted volumes on drives that use sectors larger than 4096 bytes. However, note that you can create file-hosted volumes (containers) on such drives.</string>
-    <string lang="en" key="SYSENC_UNSUPPORTED_SECTOR_SIZE_BIOS">It is currently not possible to encrypt a system installed on a disk that uses a sector size other than 512 bytes.</string>
+    <string lang="fr" key="SECTOR_SIZE_UNSUPPORTED">Erreur : Le lecteur utilise une taille de secteur non prise en charge.\n\nIl n'est actuellement pas possible de créer de volumes de partition/périphérique-hébergé sur des lecteurs qui utilisent des secteurs de taille supérieure à 4096 octets. Toutefois, vous pouvez créer des volumes de fichiers hébergés (conteneurs) sur ces disques.</string>
+    <string lang="fr" key="SYSENC_UNSUPPORTED_SECTOR_SIZE_BIOS">Il n'est actuellement pas possible de chiffrer un système installé sur un disque qui utilise une taille de secteur différente de 512 octets.</string>
     <string lang="fr" key="NO_SPACE_FOR_BOOT_LOADER">Le chargeur d'amorçage de VeraCrypt nécessite au moins 32 Ko d'espace libre au début du disque système (il doit être stocké dans cette zone). Malheureusement votre disque ne rempli pas cette condition.\n\n Ne rapportez PAS ceci comme un bogue/un problème dans VeraCrypt. Pour résoudre ce problème vous devez repartitioner votre disque et laisser les 32 premiers kilooctets du disque libres (dans la plupart des cas, vous devrez supprimer e [...]
     <string lang="fr" key="FEATURE_UNSUPPORTED_ON_CURRENT_OS">Cette fonction n'est pas supportée par la version du système d'exploitation que vous utilisez.</string>
     <string lang="fr" key="SYS_ENCRYPTION_UNSUPPORTED_ON_CURRENT_OS">VeraCrypt ne supporte pas le chiffrement d'une partition/du disque système avec la version du système d'exploitation que vous utilisez actuellement.</string>
-    <string lang="en" key="SYS_ENCRYPTION_UNSUPPORTED_ON_VISTA_SP0">Before you can encrypt the system partition/drive on Windows Vista, you need to install Service Pack 1 or higher for Windows Vista (no such Service Pack has been installed on this system yet).\n\nNote: Service Pack 1 for Windows Vista resolved an issue causing a shortage of free base memory during system boot.</string>
-    <string lang="en" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">VeraCrypt no longer supports encryption of the system partition/drive on Windows Vista with no Service Pack installed. Before upgrading VeraCrypt, please install Service Pack 1 or higher for Windows Vista.</string>
+    <string lang="fr" key="SYS_ENCRYPTION_UNSUPPORTED_ON_VISTA_SP0">Avant de chiffrer la partition/lecteur système sur Windows Vista, vous devez installer le Service Pack 1 ou supérieur pour Windows Vista (ce Service Pack n'a pas encore été installé sur ce système).\n\nRemarque : Le Service Pack 1 pour Windows Vista résoud un problème causant un manque de mémoire lors du démarrage du système.</string>
+    <string lang="fr" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">VeraCrypt ne prend plus en charge le chiffrement du lecteur/partition système sous Windows Vista sans Service Pack installé. Avant la mise à niveau de VeraCrypt, installez le Service Pack 1 ou supérieur pour Windows Vista.</string>
     <string lang="fr" key="FEATURE_REQUIRES_INSTALLATION">Erreur : cette fonctionnalité nécessite que VeraCrypt soit installé sur le système (VeraCrypt fonctionne actuellement en mode portable).\n\nVeuillez installer VeraCrypt et réessayer.</string>
-    <string lang="en" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">WARNING: Windows does not appear to be installed on the drive from which it boots. This is not supported.\n\nYou should continue only if you are sure that Windows is installed on the drive from which it boots.\n\nDo you want to continue?</string>
+    <string lang="fr" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">ATTENTION : Windows ne semble pas être installé sur le lecteur à aprtir duquel il démarre. Ceci n'est pas supporté.\n\nVous devriez continuer uniquement si vous êtes sûr que Windows est installé sur le disque à partir duquel il démarre.\n\nVoulez-vous continuer ?</string>
     <string lang="fr" key="GPT_BOOT_DRIVE_UNSUPPORTED">Votre disque système possède un GUID de table de partition (GPT). Actuellement seuls les disques avec un MBR sont supportés.</string>
     <string lang="fr" key="TC_BOOT_LOADER_ALREADY_INSTALLED">ATTENTION : Le chargeur d'amorçage de VeraCrypt est déjà installé sur votre disque système !\n\nIl est possible qu'un autre système sur votre ordinateur soit déjà chiffré.\n\nAVERTISSEMENT : PROCÉDER AU CHIFFREMENT DU SYSTÈME ACTUELLEMENT EN FONCTIONNEMENT PEUT RENDRE LES AUTRES SYSTÈMES IMPOSSIBLES À DÉMARRER ET LES DONNÉES RELATIVES INACCESSIBLES.\n\nÊtes-vous sûr de vouloir continuer ?</string>
-    <string lang="en" key="SYS_LOADER_RESTORE_FAILED">Failed to restore the original system loader.\n\nPlease use your VeraCrypt Rescue Disk ('Repair Options' > 'Restore original system loader') or Windows installation medium to replace the VeraCrypt Boot Loader with the Windows system loader.</string>
+    <string lang="fr" key="SYS_LOADER_RESTORE_FAILED">Impossible de restaurer le chargeur d'amorçage système original.\n\nVeuillez utiliser le disque de secours VeraCrypt ("Options de réparation" > « Restaurer le chargeur d'amorçage du système original ») ou le support d'installation de Windows pour remplacer le chargeur d'amorçage de VeraCrypt avec le chargeur du système Windows.</string>
     <string lang="fr" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">Le chargeur de système d'origine ne sera pas stocké sur le disque de secours (cause probable : fichier de sauvegarde manquant).</string>
     <string lang="fr" key="ERROR_MBR_PROTECTED">Impossible d'écrire sur le secteur du MBR.\n\nVotre BIOS peut être configuré pour protéger le secteur du MBR. Rechercher dans les paramètres du BIOS (appuyez sur F2, ou Suppr ou Echap après la mise en route de votre ordinateur) une protection antivirale ou une protection du MBR.</string>
-    <string lang="en" key="BOOT_LOADER_VERSION_INCORRECT_PREFERENCES">The required version of the VeraCrypt Boot Loader is currently not installed. This may prevent some of the settings from being saved.</string>
+    <string lang="fr" key="BOOT_LOADER_VERSION_INCORRECT_PREFERENCES">La version requise du chargeur d'amorçage de VeraCrypt n'est actuellement pas installée. Cela peut empêcher certains paramètres d'être sauvegardés.</string>
     <string lang="fr" key="CUSTOM_BOOT_LOADER_MESSAGE_HELP">Note : Dans certaines situations, il se peut que vous vouliez pouvoir empêcher une personne (adversaire) qui vous regarde démarrer l’ordinateur de savoir que vous utilisez VeraCrypt. L’option ci-dessus vous permet cela en personnalisant l’écran du chargeur d’amorçage. Si vous cochez la première option, aucun texte ne sera affiché par le chargeur d’amorçage (même quand vous entrez le mauvais mot de passe). L’ordinateur apparaîtra [...]
-    <string lang="en" key="CUSTOM_BOOT_LOADER_MESSAGE_PROMPT">WARNING: Please keep in mind that if you enable this option, the VeraCrypt boot loader will not display any texts (not even when you enter the wrong password). The computer will appear to be "frozen" (unresponsive) while you can type your password (the cursor will NOT move and no asterisk will be displayed when you press a key).\n\nAre you sure you want to enable this option?</string>
+    <string lang="fr" key="CUSTOM_BOOT_LOADER_MESSAGE_PROMPT">AVERTISSEMENT : Gardez à l'esprit que si vous activez cette option, le chargeur d'amorçage de VeraCrypt n'affichera pas les textes (même pas lorsque vous entrerez un mauvais mot de passe). L'ordinateur apparaitra comme figé (sans réponse), alors que vous pouvez taper votre mot de passe (la curseur ne se déplacera pas et aucun astérisque s'affichera lorsque vous appuyerez sur une touche).\n\nÊtes-vous sûr que vous souhaitez act [...]
     <string lang="fr" key="SYS_PARTITION_OR_DRIVE_APPEARS_FULLY_ENCRYPTED">Votre partition/disque système apparait être totalement chiffré.</string>
     <string lang="fr" key="SYSENC_UNSUPPORTED_FOR_DYNAMIC_DISK">VeraCrypt ne supporte pas le chiffrement d'un disque système qui a été converti en disque dynamique.</string>
-    <string lang="en" key="WDE_UNSUPPORTED_FOR_EXTENDED_PARTITIONS">The system drive contains extended (logical) partitions.\n\nYou can encrypt an entire system drive containing extended (logical) partitions only on Windows Vista and later versions of Windows. On Windows XP, you can encrypt an entire system drive provided that it contains only primary partitions.\n\nNote: You can still encrypt the system partition instead of the entire system drive (and, in addition to that, you can crea [...]
-    <string lang="en" key="WDE_EXTENDED_PARTITIONS_WARNING">WARNING: As you are running Windows XP/2003, after you start encrypting the drive, you must NOT create any extended (logical) partitions on it (you may create only primary partitions). Any extended (logical) partition on the drive would be inaccessible after you start encrypting (the drive currently does not contain any such partition).\n\nNote: If this limitation is not acceptable, you can go back and choose to encrypt only the [...]
-    <string lang="en" key="SYSDRIVE_NON_STANDARD_PARTITIONS">Your system drive contains a non-standard partition.\n\nIf you are using a notebook, your system drive probably contains a special recovery partition. After the whole system drive is encrypted (including any recovery partition), your system might become unbootable if your computer is using an inappropriately designed BIOS. It would also be impossible to use any recovery partition until the system drive is decrypted. Therefore,  [...]
+    <string lang="fr" key="WDE_UNSUPPORTED_FOR_EXTENDED_PARTITIONS">Le lecteur système contient des partitions étendues (partitions logiques).\n\n Vous pouvez chiffrer entièrement un disque système contenant des partitions étendues uniquement sur Windows Vista et des versions ultérieures de Windows. Sur Windows XP, vous pouvez chiffrer entièrement un disque système à condition qu'il contienne uniquement des partitions primaires.\n\nRemarque : Vous pouvez toujours chiffrer la partition sy [...]
+    <string lang="fr" key="WDE_EXTENDED_PARTITIONS_WARNING">AVERTISSEMENT : Comme vous exécutez Windows XP/2003, après avoir démarré le chiffrement du lecteur, vous ne devez pas créer de partitions étendues (partitions logiques) sur ce dernier (vous pouvez créer uniquement des partitions primaires). Toute partition étendue sur le disque sera inaccessible après le démarrage du chiffrement (le disque actuel ne contient pas de telles partition).\n\nRemarque : Si cette limitation n'est pas a [...]
+    <string lang="fr" key="SYSDRIVE_NON_STANDARD_PARTITIONS">Votre lecteur système contient une partition non standard.\n\nSi vous utilisez un ordinateur portable, votre lecteur système contient probablement une partition spéciale de récupération. Après que l'ensemble du disque système est chiffré (y compris toute partition de récupération), votre système pourrait ne plus démarrer si votre ordinateur utilise un BIOS mal conçu. Il sera également impossible d'utiliser une partition de récu [...]
     <string lang="fr" key="ASK_ENCRYPT_PARTITION_INSTEAD_OF_DRIVE">Voulez-vous chiffrer la partition système au lieu de l'intégralité du disque ?\n\nNotez que vous pouvez créer des volumes VeraCrypt hébergeant une partition dans des partitions non-système du disque (en plus du chiffrement de la partition système).</string>
     <string lang="fr" key="WHOLE_SYC_DEVICE_RECOM">Comme votre disque système ne contient qu'une seule partition qui occupe tout le disque, il est préférable (plus sécurisé) de chiffrer l'intégralité du disque y compris l'espace libre qui entoure typiquement une telle partition.\n\nVoulez-vous chiffrer l'intégralité du disque système ?</string>
-    <string lang="en" key="TEMP_NOT_ON_SYS_PARTITION">Your system is configured to store temporary files on a non-system partition.\n\nTemporary files may be stored only on the system partition.</string>
-    <string lang="en" key="USER_PROFILE_NOT_ON_SYS_PARTITION">Your user profile files are not stored on the system partition.\n\nUser profile files may be stored only on the system partition.</string>
-    <string lang="en" key="PAGING_FILE_NOT_ON_SYS_PARTITION">There is/are paging file(s) on non-system partitions.\n\nPaging files may be located only on the system partition.</string>
-    <string lang="en" key="RESTRICT_PAGING_FILES_TO_SYS_PARTITION">Do you want to configure Windows to create paging files only on the Windows partition now?\n\nNote that if you click 'Yes', the computer will be restarted. Then start VeraCrypt and try creating the hidden OS again.</string>
-    <string lang="en" key="LEAKS_OUTSIDE_SYSPART_UNIVERSAL_EXPLANATION"> Otherwise, plausible deniability of the hidden operating system might be adversely affected.\n\nNote: If an adversary analyzed the content of such files (residing on a non-system partition), he might find out that you used this wizard in the hidden-system-creation mode (which might indicate the existence of a hidden operating system on your computer). Also note that any such files stored on the system partition will [...]
-    <string lang="en" key="DECOY_OS_REINSTALL_WARNING">WARNING: During the process of creation of the hidden operating system, you will be required to fully reinstall the currently running system (in order to create a decoy system securely).\n\nNote: The currently running operating system and the entire content of the system partition will be copied to the hidden volume (in order to create the hidden system).\n\n\nAre you sure you will be able to install Windows using a Windows Setup med [...]
-    <string lang="en" key="DECOY_OS_REQUIREMENTS">For security reasons, if the currently running operating system requires activation, it must be activated before proceeding. Note that the hidden operating system will be created by copying the content of the system partition to a hidden volume (so if this operating system is not activated, the hidden operating system will not be activated either). For more information, see the section "Security Requirements and Precautions Pertaining to  [...]
-    <string lang="en" key="CONFIRM_HIDDEN_OS_EXTRA_BOOT_PARTITION">Your system uses an extra boot partition. VeraCrypt does not support hibernation on hidden operating systems that use an extra boot partition (decoy systems can be hibernated without any problems).\n\nPlease note that the boot partition would be shared by both the decoy and the hidden system. Therefore, in order to prevent data leaks and problems while resuming from hibernation, VeraCrypt has to prevent the hidden system  [...]
-    <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
+    <string lang="fr" key="TEMP_NOT_ON_SYS_PARTITION">Votre système est configuré pour stocker les fichiers temporaires sur une partition non système.\n\nLes fichiers temporaires ne peuvent être stockés que sur la partition système.</string>
+    <string lang="fr" key="USER_PROFILE_NOT_ON_SYS_PARTITION">Vos fichiers de profil utilisateur ne sont pas stockés sur la partition système.\n\nLes fichiers de profil utilisateur ne peuvent être stockés que sur la partition système.</string>
+    <string lang="fr" key="PAGING_FILE_NOT_ON_SYS_PARTITION">Il existe un/des fichier(s) de pagination sur une/des partition(s) non-système.\n\nLes fichiers de pagination ne peuvent figurer que sur la partition système.</string>
+    <string lang="fr" key="RESTRICT_PAGING_FILES_TO_SYS_PARTITION">Voulez-vous configurer Windows pour créer des fichiers de pagination uniquement sur la partition Windows ?\n\nSi vous cliquez sur « Oui », l'ordinateur sera redémarré. Alors lancez VeraCrypt et essayez à nouveau de créer le système d'exploitation caché.</string>
+    <string lang="fr" key="LEAKS_OUTSIDE_SYSPART_UNIVERSAL_EXPLANATION"> Dans le cas contraire, le déni plausible du système d'exploitation caché pourrait être défavorablement affecté.\n\nRemarque : Si une personne analyse le contenu de ces fichiers (résidant sur une partition non système), elle peut savoir que vous avez utilisé l'assistant en mode création système-caché (ce qui pourrait indiquer l'existence d'un système d'exploitation caché sur votre ordinateur). Notez également que tou [...]
+    <string lang="fr" key="DECOY_OS_REINSTALL_WARNING">AVERTISSEMENT : Pendant le processus de création du système d'exploitation caché, vous devrez réinstaller complètement le système en cours d'exécution (afin de créer un leurre système en toute sécurité).\n\nRemarque : Le système d'exploitation actuel et l'ensemble du contenu de la partition système seront copiés sur le volume caché (afin de créer le système caché).\n\n\nÊtes-vous sûr que vous serez en mesure d'installer Windows à l'a [...]
+    <string lang="fr" key="DECOY_OS_REQUIREMENTS">Pour des raisons de sécurité, si le système d'exploitation en cours d'exécution exige d'être activé, ce doit être fait avant de continuer. Notez que le système d'exploitation caché sera créé en copiant le contenu de la partition système sur un volume caché (donc si ce système d'exploitation n'est pas activé, le système d'exploitation caché ne sera pas activé non plus).\n\nImportant : Pour plus d'informations et avant de continuer, consult [...]
+    <string lang="fr" key="CONFIRM_HIDDEN_OS_EXTRA_BOOT_PARTITION">Votre système utilise une partition de démarrage supplémentaires. VeraCrypt ne supporte pas la mise en veille prolongée sur les systèmes d'exploitation cachés qui utilisent une partition de démarrage supplémentaire (Les systèmes leurre peuvent être mis en veille prolongées sans aucun problème).\n\nLa partition de démarrage sera partagée par le leurre et le système caché. Donc, afin d'éviter les fuites de données et les pr [...]
+    <string lang="fr" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nLa partition de démarrage supplémentaires peut être retirée avant l'installation de Windows. Pour ce faire, suivez ces étapes : \n\n1) Démarrer sur le disque d'installation de Windows.\n\n2) Sur l'écran d'installation de Windows, cliquez sur "Installer maintenant" > "personnalisé (avancée)".\n\n3) Cliquez sur "Options du lecteur".\n\n4) Sélectionnez la partition système principale et supprimez-la en cliquant sur " [...]
     <string lang="fr" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Avertissement : Il existe un espace non alloué entre la partition système et la première partition après celle-ci. Après la création du système d'exploitation caché, vous ne devez pas créer de nouvelles partitions dans cet espace non alloué. Dans le cas contraire, le système d'exploitation caché serait impossible à amorcer (jusqu'à la suppression des nouvelles partitions créées).</string>
     <string lang="fr" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Cet algorithme n'est pas encore supporté pour le chiffrement système.</string>
-	<string lang="fr" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">Cet algorithme n'est pas supporté pour le mode TrueCrypt.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supporte seulement les volumes TrueCrypt créés avec les version 6.x de TrueCrypt</string>
-    <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
+    <string lang="fr" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">Cet algorithme n'est pas supporté pour le mode TrueCrypt.</string>
+    <string lang="fr" key="UNSUPPORTED_TRUECRYPT_FORMAT">Ce volume a été créé par TrueCrypt %x.%x mais VeraCrypt supporte seulement les volumes TrueCrypt créés avec les version 6.x/7.x de TrueCrypt</string>
+    <string lang="fr" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Les fichiers clés ne sont actuellement pas pris en charge pour le chiffrement du système.</string>
     <string lang="fr" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Avertissement : VeraCrypt n'a pas pu restaurer la disposition originale du clavier. Cela peut vous faire saisir votre mot de passe de manière erronée .</string>
     <string lang="fr" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Erreur : Impossible de paramétrer la disposition du clavier pour VeraCrypt en clavier Américain standard.\n\nNotez que le mot de passe doit être saisi dans un environnement de pré-amorçage (avant que Windows ne démarre) où seul le clavier américain est disponible. Aussi le mot de passe doit toujours être saisi en utilisant la disposition du clavier américain.</string>
     <string lang="fr" key="ALT_KEY_CHARS_NOT_FOR_SYS_ENCRYPTION">Comme VeraCrypt a temporairement changé la disposition du clavier en clavier Américain, il n'est pas possible de taper des caractères tant que la touche droite ALT est maintenue enfoncée. Cependant vous pouvez saisir la plupart de ces caractères en appuyant la touche appropriée tandis que la touche Maj est maintenue enfoncée.</string>
     <string lang="fr" key="KEYB_LAYOUT_CHANGE_PREVENTED">VeraCrypt a empêché la modification de la disposition du clavier.</string>
     <string lang="fr" key="KEYB_LAYOUT_SYS_ENC_EXPLANATION">Note : Le mot de passe devra être saisi dans l'environnement de pré-amorçage (avant le démarrage de windows) où les dispositions de clavier non-américain ne sont pas disponibles. Aussi, le mot de passe doit toujours être saisi en utilisant la disposition du clavier Américain. Mais il est important de noter qu'il n'est PAS nécessaire de posséder un vrai clavier américain. VeraCrypt assure automatiquement que vous pouvez saisir en [...]
-    <string lang="en" key="RESCUE_DISK_INFO">Before you can encrypt the partition/drive, you must create a VeraCrypt Rescue Disk (TRD), which serves the following purposes:\n\n- If the VeraCrypt Boot Loader, master key, or other critical data gets damaged, the TRD allows you to restore it (note, however, that you will still have to enter the correct password then).\n\n- If Windows gets damaged and cannot start, the TRD allows you to permanently decrypt the partition/drive before Windows  [...]
-    <string lang="en" key="RESCUE_DISK_WIN_ISOBURN_PRELAUNCH_NOTE">After you click OK, Microsoft Windows Disc Image Burner will be launched. Please use it to burn the VeraCrypt Rescue Disk ISO image to a CD or DVD.\n\nAfter you do so, return to the VeraCrypt Volume Creation Wizard and follow its instructions.</string>
-    <string lang="en" key="RESCUE_DISK_BURN_INFO">The Rescue Disk image has been created and stored in this file:\n%hs\n\nNow you need to burn it to a CD or DVD.\n\n%lsAfter you burn the Rescue Disk, click Next to verify that it has been correctly burned.</string>
-    <string lang="en" key="RESCUE_DISK_BURN_INFO_NO_CHECK">The Rescue Disk image has been created and stored in this file:\n%hs\n\nNow you should either burn the image to a CD/DVD or move it to a safe location for later use.\n\n%lsClick Next to continue.</string>
-    <string lang="en" key="RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER">IMPORTANT: Note that the file must be written to the CD/DVD as an ISO disk image (not as an individual file). For information on how to do so, please refer to the documentation of your CD/DVD recording software. If you do not have any CD/DVD recording software that can write the ISO disk image to a CD/DVD, click the link below to download such free software.\n\n</string>
-    <string lang="en" key="LAUNCH_WIN_ISOBURN">Launch Microsoft Windows Disc Image Burner</string>
+    <string lang="fr" key="RESCUE_DISK_INFO">Avant de pouvoir chiffrer la partition/disque, vous devez créer un disque de sauvegarde VeraCrypt (TRD), dont les buts sont :\n\n- Si le chargeur de démarrage de VeraCrypt, la clé principale ou d'autres données critiques sont endommagées, le TRD permet de les restaurer (remarquez que vous devrez toujours entrer le mot de passe correct).\n\n- Si Windows est endommagé et ne peut pas démarrer, TRD vous permet toujours de déchiffrer la partition/d [...]
+    <string lang="fr" key="RESCUE_DISK_WIN_ISOBURN_PRELAUNCH_NOTE">Après avoir cliqué sur OK, le logiciel de gravage d'image Microsoft sera lancé. Utilisez-le pour graver l'image ISO du disque de récupération VeraCrypt sur un CD ou un DVD.\n\nAprès cela, revenez à l'assistant de création de volumes VeraCrypt et suivez les instructions.</string>
+    <string lang="fr" key="RESCUE_DISK_BURN_INFO">L'image de la disque de secours a été créée et stockée dans le fichier : \n%hs\n\nMainteant vous avez besoin de le graver sur un CD ou un DVD.\n\n%lsAprès l'avoir gravé, cliquez sur suivant pour vérifier qu'il a été gravé correctement.</string>
+    <string lang="fr" key="RESCUE_DISK_BURN_INFO_NO_CHECK">L'image de la disque de secours a été créée et stockée dans le fichier : \n%hs\n\nVous devriez maintenant graver l'image sur un CD/DVD ou la déplacer vers un emplacement sécurisé pour une utilisation ultérieure.\n\n%lsCliquez sur "Suivant" pour continuer.</string>
+    <string lang="fr" key="RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER">IMPORTANT : Le fichier doit être écrit sur le CD/DVD sous forme d'image ISO (pas dans un fichier individuel). Pour plus d'informations sur la façon de le faire, veuillez vous reporter à la documentation de votre logiciel de gravure de CD/DVD. Si vous n'avez pas de logiciel de gravure de CD/DVD cliquez sur le lien ci-dessous pour télécharger un logiciel gratuit.\n\n</string>
+    <string lang="fr" key="LAUNCH_WIN_ISOBURN">Lancez le logiciel de gravure d'image disque de Microsoft</string>
     <string lang="fr" key="RESCUE_DISK_BURN_NO_CHECK_WARN">AVERTISSEMENT : Si vous avez déjà créé un disque de secours VeraCrypt dans le passé, il ne peut pas être utilisé à nouveau pour cette partition/ce disque système car il a été créé pour une clé principale différente ! Chaque fois que vous chiffrez une partition/un disque système, vous devez créer un disque de secours VeraCrypt même si vous utilisez le même mot de passe.</string>
     <string lang="fr" key="CANNOT_SAVE_SYS_ENCRYPTION_SETTINGS">Erreur : Impossible de sauvegarder les paramètres de chiffrement système.</string>
     <string lang="fr" key="CANNOT_INITIATE_SYS_ENCRYPTION_PRETEST">Impossible d'initialiser le pré-test du chiffrement système.</string>
     <string lang="fr" key="CANNOT_INITIATE_HIDDEN_OS_CREATION">Impossible d'initier le processus de création du système d'exploitation caché.</string>
     <string lang="fr" key="WIPE_MODE_TITLE">Mode de nettoyage</string>
-    <string lang="en" key="INPLACE_ENC_WIPE_MODE_INFO">On some types of storage media, when data is overwritten with other data, it may be possible to recover the overwritten data using techniques such as magnetic force microscopy. This also applies to data that are overwritten with their encrypted form (which happens when VeraCrypt initially encrypts an unencrypted partition or drive). According to some studies and governmental publications, recovery of overwritten data can be prevented [...]
-    <string lang="en" key="WIPE_MODE_INFO">On some types of storage media, when data is overwritten with other data (e.g. when the data is erased), it may be possible to recover the overwritten data using techniques such as magnetic force microscopy. According to some studies and governmental publications, recovery of overwritten data can be prevented (or made very difficult) by overwritting the data with pseudorandom and certain non-random data a certain number of times. Therefore, if y [...]
-    <string lang="en" key="DEVICE_WIPE_PAGE_TITLE">Wiping</string>
-    <string lang="en" key="DEVICE_WIPE_PAGE_INFO_HIDDEN_OS">\nNote: You can interrupt the process of wiping, shut down your computer, start the hidden system again and then resume the process (this wizard will be launched automatically). However, if you interrupt it, the entire process of wiping will have to start from the beginning.</string>
-    <string lang="en" key="DEVICE_WIPE_PAGE_INFO">\n\nNote: If you interrupt the process of wiping and then attempt to resume it, the entire process will have to start from the beginning.</string>
-    <string lang="en" key="CONFIRM_WIPE_ABORT">Do you want to abort the process of wiping?</string>
-    <string lang="en" key="CONFIRM_WIPE_START">Warning: The entire content of the selected partition/device will be erased and lost.</string>
-    <string lang="en" key="CONFIRM_WIPE_START_DECOY_SYS_PARTITION">The entire content of the partition where the original system resides will be erased.\n\nNote: The entire content of the partition that is to be erased has been copied to this hidden system partition.</string>
-    <string lang="en" key="WIPE_MODE_WARN">WARNING: Note that when you choose e.g. the 3-pass wipe mode, the time necessary to encrypt the partition/drive will be up to 4 times longer. Likewise, if you choose the 35-pass wipe mode, it will be up to 36 times longer (it might even take several weeks).\n\nHowever, please note that wiping will NOT be performed after the partition/drive is fully encrypted. When the partition/drive is fully encrypted, no unencrypted data is written to it. Any  [...]
+    <string lang="fr" key="INPLACE_ENC_WIPE_MODE_INFO">Sur certains types de supports de stockage, lorsque les données sont écrasées avec d'autres données, il peut être possible de récupérer les données écrasées à l'aide de techniques telles que la microscopie à force de résonnance magnétique. Cela vaut également pour les données qui sont remplacées par leur forme chiffrée (ce qui arrive quand VeraCrypt chiffre initiallement un lecteur ou une partition non chiffré). Selon des études et d [...]
+    <string lang="fr" key="WIPE_MODE_INFO">Sur certains types de supports de stockage, lorsque les données sont écrasées avec d'autres données, il peut être possible de récupérer les données écrasées à l'aide de techniques telles que la microscopie à force de résonnance magnétique. Selon des études et des publications gouvernementales, la récupération de données écrasées peut être empêchée (ou rendue très difficile) en écrasant un certain nombre de fois les données, avec des données géné [...]
+    <string lang="fr" key="DEVICE_WIPE_PAGE_TITLE">Nettoyage</string>
+    <string lang="fr" key="DEVICE_WIPE_PAGE_INFO_HIDDEN_OS">\nRemarque : Vous pouvez interrompre le processus de nettoyage, arrêter l'ordinateur, relancer le système caché et puis reprendre le processus (cet Assistant sera lancé automatiquement). Toutefois, si vous l'interrompez, l'ensemble du processus de nettoyage devra recommencer depuis le début.</string>
+    <string lang="fr" key="DEVICE_WIPE_PAGE_INFO">\n\nRemarque : Si vous interrompez le processus de nettoyage et puis essayez de le reprendre, l'ensemble du processus devra recommencer depuis le début.</string>
+    <string lang="fr" key="CONFIRM_WIPE_ABORT">Voulez-vous annuler le processus de nettoyage ?</string>
+    <string lang="fr" key="CONFIRM_WIPE_START">Avertissement : Tout le contenu du lecteur/partition sélectionné sera effacé et perdu.</string>
+    <string lang="fr" key="CONFIRM_WIPE_START_DECOY_SYS_PARTITION">Tout le contenu de la partition hébergeant le système d'origine sera effacé.\n\nRemarque : Tout le contenu de la partition qui doit être effacé a été copié sur cette partition système cachée.</string>
+    <string lang="fr" key="WIPE_MODE_WARN">AVERTISSEMENT : Notez que lorsque vous choisissez par exemple le mode de nettoyage de 3 passes, le temps nécessaire pour chiffrer la partition/disque sera jusqu'à 4 fois plus long. De même, si vous choisissez le mode de nettoyage de 35 passes, cela durera jusqu'à 36 fois plus longtemps (cela pourrait même prendre plusieurs semaines).\n\nCependant, notez que le nettoyage ne sera pas effectué après que la partition/disque soit entièrement chiffré. [...]
     <string lang="fr" key="WIPE_MODE_NONE">Aucun (le plus rapide)</string>
-    <string lang="en" key="WIPE_MODE_1_RAND">1-passage (random data)</string>
+    <string lang="fr" key="WIPE_MODE_1_RAND">1 passage (données aléatoires)</string>
     <string lang="fr" key="WIPE_MODE_3_DOD_5220">3 passages (US DoD 5220.22-M)</string>
     <string lang="fr" key="WIPE_MODE_7_DOD_5220">7 passages (US DoD 5220.22-M)</string>
-    <string lang="en" key="WIPE_MODE_35_GUTMANN">35-passages ("Gutmann")</string>
-    <string lang="en" key="WIPE_MODE_256">256-passages</string>
+    <string lang="fr" key="WIPE_MODE_35_GUTMANN">35 passages ("Gutmann")</string>
+    <string lang="fr" key="WIPE_MODE_256">256 passages</string>
     <string lang="fr" key="SYS_MULTI_BOOT_MODE_TITLE">Nombre de système d'exploitation</string>
     <string lang="fr" key="MULTI_BOOT_FOR_ADVANCED_ONLY">AVERTISSEMENT : Les utilisateurs novices ne devraient pas essayer de chiffrer Windows dans des configurations à amorçages multiples.\n\nContinuer ?</string>
-    <string lang="en" key="HIDDEN_OS_MULTI_BOOT">When creating/using a hidden operating system, VeraCrypt supports multi-boot configurations only when the following conditions are met:\n\n- The currently running operating system must be installed on the boot drive, which must not contain any other operating systems.\n\n- Operating systems installed on other drives must not use any boot loader residing on the drive on which the currently running operating system is installed.\n\nAre the a [...]
-    <string lang="en" key="UNSUPPORTED_HIDDEN_OS_MULTI_BOOT_CFG">VeraCrypt does not support this multi-boot configuration when creating/using a hidden operating system.</string>
+    <string lang="fr" key="HIDDEN_OS_MULTI_BOOT">Lors de la création et l'utilisation d'un système d'exploitation caché, VeraCrypt prend en charge les configurations multi-boot uniquement lorsque les conditions suivantes sont réunies :\n\n- Le système d'exploitation en cours d'exécution doit être installé sur le lecteur d'amorçage, qui ne doit contenir aucun autre système d'exploitation.\n\n- Les systèmes d'exploitation installés sur d'autres lecteurs ne doivent pas utiliser les chargeur [...]
+    <string lang="fr" key="UNSUPPORTED_HIDDEN_OS_MULTI_BOOT_CFG">VeraCrypt ne supporte pas cette configuration multi-bootlors de la création/utilisation d'un système d'exploitation caché.</string>
     <string lang="fr" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_TITLE">Disque d'amorçage</string>
     <string lang="fr" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_HELP">Le système d'exploitation en cours est-il installé sur le disque d'amorçage.\n\nNote : Parfois Windows n'est pas installé sur le même disque que le chargeur d'amorçage de Windows (partition d'amorçage). Si c'est le cas cliquez sur 'Non'.</string>
     <string lang="fr" key="SYS_PARTITION_MUST_BE_ON_BOOT_DRIVE">VeraCrypt ne supporte pas encore le chiffrement d'un système d'exploitation qui ne démarre pas depuis le disque sur lequel il est installé.</string>
@@ -1089,21 +1094,21 @@
     <string lang="fr" key="SYSENC_PRE_DRIVE_ANALYSIS_HELP">A la fin de nombreux disques, il y a une zone qui est normalement cachée du système d'exploitation (de telles zones sont généralement appelées 'Zones protégées hôtes' - Host Protected Area). Cependant certains programmes peuvent lire et écrire des données dans ces zones.\n\nAVERTISSEMENT : Certains constructeurs d'ordinateurs peuvent utiliser à dessein ces zones pour y stocker des outils et des données pour le RAID, des outils de [...]
     <string lang="fr" key="SYSENC_TYPE_PAGE_TITLE">Type du chiffrement du système</string>
     <string lang="fr" key="SYSENC_NORMAL_TYPE_HELP">Choisir cette option si vous voulez simplement chiffrer la partition système ou l'intégralité du disque système.</string>
-    <string lang="en" key="SYSENC_HIDDEN_TYPE_HELP">It may happen that you are forced by somebody to decrypt the operating system. There are many situations where you cannot refuse to do so (for example, due to extortion). If you select this option, you will create a hidden operating system whose existence should be impossible to prove (provided that certain guidelines are followed). Thus, you will not have to decrypt or reveal the password to the hidden operating system. For a detailed  [...]
-    <string lang="en" key="HIDDEN_OS_PREINFO">It may happen that you are forced by somebody to decrypt the operating system. There are many situations where you cannot refuse to do so (for example, due to extortion).\n\nUsing this wizard, you can create a hidden operating system whose existence should be impossible to prove (provided that certain guidelines are followed). Thus, you will not have to decrypt or reveal the password for the hidden operating system.</string>
+    <string lang="fr" key="SYSENC_HIDDEN_TYPE_HELP">Il peut arriver que vous êtes obligé par quelqu'un de déchiffrer le système d'exploitation. Il y a beaucoup de situations où vous ne pouvez pas refuser de le faire (par exemple, en raison de l'extorsion). Si vous sélectionnez cette option, vous allez créer un système d'exploitation caché dont l'existence sera impossible à prouver (à condition que certaines consignes soient suivies). Ainsi, vous n'aurez pas à déchiffrer ou révéler le mot [...]
+    <string lang="fr" key="HIDDEN_OS_PREINFO">Il peut arriver que vous êtes obligé par quelqu'un de déchiffrer le système d'exploitation. Il y a beaucoup de situations où vous ne pouvez pas refuser de le faire (par exemple, en raison de l'extorsion).\n\nEn utilisant cet assistant vous pouvez créer un système d'exploitation caché dont l'existence sera impossible à prouver (à condition que certaines consignes soient suivies). Ainsi, vous n'aurez pas à déchiffrer ou révéler le mot de passe  [...]
     <string lang="fr" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_TITLE">Système d'exploitation caché</string>
-    <string lang="en" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_HELP">In the following steps, you will create two VeraCrypt volumes (outer and hidden) within the first partition behind the system partition. The hidden volume will contain the hidden operating system (OS). VeraCrypt will create the hidden OS by copying the content of the system partition (where the currently running OS is installed) to the hidden volume. To the outer volume, you will copy some sensitive looking files that you a [...]
+    <string lang="fr" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_HELP">Dans les étapes suivantes, vous allez créer deux volumes VeraCrypt (extérieur et caché), à l'intérieure de la première partition derrière la partition système. Le volume caché contient le système d'exploitation caché (OS). VeraCrypt créera les OS cachés en copiant le contenu de la partition système (où le système d'exploitation en cours d'exécution est installé) dan le volume caché. Pour le volume extérieur, vous allez copi [...]
     <string lang="fr" key="SYSENC_DRIVE_ANALYSIS_TITLE">Détection des secteurs cachés</string>
     <string lang="fr" key="SYSENC_DRIVE_ANALYSIS_INFO">Patientez pendant que VeraCrypt vérifie la présence de secteurs cachés à la fin du disque système. Notez que cela peut prendre un certain temps.\n\nNote : Dans de rares cas, le système peut ne plus répondre durant ce processus de détection. Si cela se produit, redémarrez votre ordinateur, lancez VeraCrypt et essayez à nouveau. VeraCrypt vous demandera automatiquement si vous voulez éviter cette phase de détection. Notez que ce problè [...]
     <string lang="fr" key="SYS_ENCRYPTION_SPAN_TITLE">Zone à chiffrer</string>
-    <string lang="en" key="SYS_ENCRYPTION_SPAN_WHOLE_SYS_DRIVE_HELP">Select this option if you want to encrypt the entire drive on which the currently running Windows system is installed. The whole drive, including all its partitions, will be encrypted except the first track where the VeraCrypt Boot Loader will reside. Anyone who wants to access a system installed on the drive, or files stored on the drive, will need to enter the correct password each time before the system starts. This  [...]
+    <string lang="fr" key="SYS_ENCRYPTION_SPAN_WHOLE_SYS_DRIVE_HELP">Sélectionnez cette option si vous souhaitez chiffrer la totalité du disque sur lequel est installé le système d'exploitation Windows en cours d'exécution. Le disque entier, y compris toutes ses partitions, est chiffré sauf la première piste où résidera le chargeur de démarrage VeraCrypt. Toute personne souhaitant accéder à un système installé sur le disque, ou des fichiers stockés sur le disque, devra entrer à chaque fo [...]
     <string lang="fr" key="COLLECTING_RANDOM_DATA_TITLE">Collecte de données aléatoires</string>
     <string lang="fr" key="KEYS_GEN_TITLE">Clés générées</string>
-    <string lang="en" key="CD_BURNER_NOT_PRESENT">VeraCrypt has found no CD/DVD burner connected to your computer. VeraCrypt needs a CD/DVD burner to burn a bootable VeraCrypt Rescue Disk containing a backup of the encryption keys, VeraCrypt boot loader, original system loader, etc.\n\nWe strongly recommend that you burn the VeraCrypt Rescue Disk.</string>
-    <string lang="en" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO">I have no CD/DVD burner but I will store the Rescue Disk ISO image on a removable drive (e.g. USB flash drive).</string>
-    <string lang="en" key="CD_BURNER_NOT_PRESENT_WILL_CONNECT_LATER">I will connect a CD/DVD burner to my computer later. Terminate the process now.</string>
-    <string lang="en" key="CD_BURNER_NOT_PRESENT_CONNECTED_NOW">A CD/DVD burner is connected to my computer now. Continue and write the Rescue Disk.</string>
-    <string lang="en" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO_INFO">Please follow these steps:\n\n1) Connect a removable drive, such as a USB flash drive, to your computer now.\n\n2) Copy the VeraCrypt Rescue Disk image file (%s) to the removable drive.\n\nIn case you need to use the VeraCrypt Rescue Disk in the future, you will be able to connect your removable drive (containing the VeraCrypt Rescue Disk image) to a computer with a CD/DVD burner and create a bootable VeraCrypt Rescue  [...]
+    <string lang="fr" key="CD_BURNER_NOT_PRESENT">VeraCrypt n'a trouvé aucun graveur de CD/DVD connecté à votre ordinateur. VeraCrypt a besoin d'un graveur de CD/DVD pour graver un disque de secours VeraCrypt bootable contenant une sauvegarde des clés de chiffrement, du chargeur de démarrage VeraCrypt, du chargeur original du système, etc.\n\nNous vous recommandons fortement de graver le disque de secours VeraCrypt.</string>
+    <string lang="fr" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO">Je n'ai aucun graveur CD/DVD, mais j'enregistrerai l'image ISO de secours sur un lecteur amovible (par exemple une clé USB).</string>
+    <string lang="fr" key="CD_BURNER_NOT_PRESENT_WILL_CONNECT_LATER">Je connecterai un graveur de CD/DVD sur mon ordinateur plus tard. Terminer le processus maintenant.</string>
+    <string lang="fr" key="CD_BURNER_NOT_PRESENT_CONNECTED_NOW">Un graveur de CD/DVD est connecté à mon ordinateur. Continuer et créer le disque de secours.</string>
+    <string lang="fr" key="CD_BURNER_NOT_PRESENT_WILL_STORE_ISO_INFO">Suivez les étapes :\n\n1) Connectez maintenant un disque amovible, comme une clé USB, à votre ordinateur.\n\n2) Copier le fichier image du disque de secours VeraCrypt (%s) sur le lecteur amovible.\n\nDans le cas où vous devez utiliser le disque de secours de VeraCrypt à l'avenir, vous serez en mesure de connecter votre disque amovible (contenant l'image du disque de secours VeraCrypt) à un ordinateur avec un graveur de [...]
     <string lang="fr" key="RESCUE_DISK_RECORDING_TITLE">Enregistrement du disque de secours</string>
     <string lang="fr" key="RESCUE_DISK_CREATED_TITLE">Disque de secours créé</string>
     <string lang="fr" key="SYS_ENCRYPTION_PRETEST_TITLE">Pré-test du chiffrement système</string>
@@ -1112,129 +1117,129 @@
     <string lang="fr" key="REMOVE_RESCUE_DISK_FROM_DRIVE">AVERTISSMENT : Lors des prochaines étapes, le disque de secours de VeraCrypt ne doit pas être dans le lecteur. Sinon il ne sera pas possible de terminer correctement les étapes.\n\nRetirez-le du lecteur maintenant et stockez-le dans un endroit sûr. Puis cliquez sur 'OK'.</string>
     <string lang="fr" key="PREBOOT_NOT_LOCALIZED">Avertissement : À cause de limitations techniques de l'environnement de pré-amorçage, les textes affichés par VeraCrypt dans cet environement (avant que Windows ne démarre) ne peuvent être traduits. L'interface utilisateur du chargeur d'amorçage de VeraCrypt est uniquement en anglais.\n\nContinuer ?</string>
     <string lang="fr" key="SYS_ENCRYPTION_PRETEST_INFO">Avant de chiffrer votre partition ou votre disque système, VeraCrypt doit vérifier que tout fonctionne correctement.\n\nAprès avoir cliqué sur 'Test', tous les composants nécessaires (par exemple, le composant d'indentification du pré-amorçage, c'est-à-dire le chargeur d'amorçage de VeraCrypt) seront installés et votre ordinateur redémarrera. Vous devrez ensuite saisir le mot de passe dans l'écran du chargeur d'amorçage de VeraCrypt [...]
-    <string lang="en" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_1">IMPORTANT NOTES -- PLEASE READ OR PRINT (click 'Print'):\n\nNote that none of your files will be encrypted before you successfully restart your computer and start Windows. Thus, if anything fails, your data will NOT be lost. However, if something does go wrong, you might encounter difficulties in starting Windows. Therefore, please read (and, if possible, print) the following guidelines on what to do if Windows cannot sta [...]
-    <string lang="en" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_2">What to Do If Windows Cannot Start\n------------------------------------------------\n\nNote: These instructions are valid only if you have not started encrypting.\n\n- If Windows does not start after you enter the correct password (or if you repeatedly enter the correct password but VeraCrypt says that the password is incorrect), do not panic. Restart (power off and on) the computer, and in the VeraCrypt Boot Loader scre [...]
-    <string lang="en" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_3">- If the previous steps do not help or if the VeraCrypt Boot Loader screen does not appear (before Windows starts), insert the VeraCrypt Rescue Disk into your CD/DVD drive and restart your computer. If the VeraCrypt Rescue Disk screen does not appear (or if you do not see the 'Repair Options' item in the 'Keyboard Controls' section of the VeraCrypt Rescue Disk screen), it is possible that your BIOS is configured to attemp [...]
-    <string lang="en" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_4">Note that the previous steps do NOT work if the system partition/drive is encrypted (nobody can start Windows or access encrypted data on the drive without the correct password even if he or she follows the previous steps).\n\n\nNote that even if you lose your VeraCrypt Rescue Disk and an attacker finds it, he or she will NOT be able to decrypt the system partition or drive without the correct password.</string>
+    <string lang="fr" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_1">REMARQUES IMPORTANTES-- VEUILLEZ LES LIRE OU LES IMPRIMER (cliquez sur « Imprimer ») :\n\nAucun de vos fichiers ne sera chiffré avant que vous ayez redémarré avec succès votre ordinateur et Windows. Ainsi, si quelque chose tombe en panne, vos données ne seront pas perdues. Toutefois, si quelque chose se passe mal, vous risquez de rencontrer des difficultés au démarrage de Windows. Par conséquent, veuillez lire et si possi [...]
+    <string lang="fr" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_2">Marche à suivre si Windows ne démarre pas\n---\n\nRemarque : Ces instructions sont valables uniquement si vous n'avez pas commencé le chiffrement.\n\n- Si Windows ne démarre pas après avoir entré le mot de passe (ou si vous entrez correctement plusieurs fois le mot de passe mais que VeraCrypt indique que le mot de passe est incorrect), ne paniquez pas. Redémarrer l'ordinateur en appuyant sur le bouton marche/arrêt, puis s [...]
+    <string lang="fr" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_3">- Si les étapes précédentes ne résolvent pas le problème ou si l'écran du chargeur de démarrage de VeraCrypt n'apparaît pas (avant le démarrage de Windows), insérez le disque de secours VeraCrypt dans votre lecteur de CD/DVD et redémarrez votre ordinateur. Si l'écran VeraCrypt du disque de secours n'apparaît pas (ou si vous ne voyez pas l'élément "Options de réparation" dans la section "Contrôles clavier" de l'écran VeraC [...]
+    <string lang="fr" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_4">Notez que les étapes précédentes ne fonctionnent pas si le système partition/disque est chiffré (personne ne peut démarrer Windows ou accéder à des données chiffrées sur le disque sans le mot de passe même si les étapes précédentes ont été suivies).\n\n\nNotez que même si vous perdez votre disque de secours VeraCrypt et qu'une personne le trouve, elle ne sera pas en mesure de déchiffrée le lecteur/partition sans le bon mo [...]
     <string lang="fr" key="SYS_ENCRYPTION_PRETEST_RESULT_TITLE">Pré-test terminé</string>
-    <string lang="en" key="SYS_ENCRYPTION_PRETEST_RESULT_INFO">The pretest has been successfully completed.\n\nWARNING: Please note that if power supply is suddenly interrupted while encrypting existing data in place, or when the operating system crashes due to a software error or hardware malfunction while VeraCrypt is encrypting existing data in place, portions of the data will be corrupted or lost. Therefore, before you start encrypting, please make sure that you have backup copies of [...]
-    <string lang="en" key="SYSENC_ENCRYPTION_PAGE_INFO">You can click Pause or Defer anytime to interrupt the process of encryption or decryption, exit this wizard, restart or shut down your computer, and then resume the process, which will continue from the point it was stopped. To prevent slowdown when the system or applications write or read data from the system drive, VeraCrypt automatically waits until the data is written or read (see Status above) and then automatically continues e [...]
-    <string lang="en" key="NONSYS_INPLACE_ENC_ENCRYPTION_PAGE_INFO">\n\nYou can click Pause or Defer anytime to interrupt the process of encryption, exit this wizard, restart or shut down your computer, and then resume the process, which will continue from the point it was stopped. Note that the volume cannot be mounted until it has been fully encrypted.</string>
-    <string lang="en" key="SYSENC_HIDDEN_OS_INITIAL_INFO_TITLE">Hidden System Started</string>
-    <string lang="en" key="SYSENC_HIDDEN_OS_WIPE_INFO_TITLE">Original System</string>
-    <string lang="en" key="SYSENC_HIDDEN_OS_WIPE_INFO">Windows creates (typically, without your knowledge or consent) various log files, temporary files, etc., on the system partition. It also saves the content of RAM to hibernation and paging files located on the system partition. Therefore, if an adversary analyzed files stored on the partition where the original system (of which the hidden system is a clone) resides, he might find out, for example, that you used the VeraCrypt wizard i [...]
-    <string lang="en" key="OS_WIPING_NOT_FINISHED_ASK">The hidden operating system has been successfully created. However, before you can start using it (and achieve plausible deniability), you need to securely erase (using VeraCrypt) the entire content of the partition where the currently running operating system is installed. Before you can do that, you need to restart the computer and, in the VeraCrypt Boot Loader screen (which appears before Windows starts), enter the pre-boot authen [...]
-    <string lang="en" key="HIDDEN_OS_CREATION_NOT_FINISHED_ASK">You have scheduled the process of creation of a hidden operating system. The process has not been completed yet. To complete it, you need to restart the computer and, in the VeraCrypt Boot Loader screen (which appears before Windows starts), enter the password for the hidden operating system.\n\nNote: If you choose to terminate the process of creation of the hidden operating system now, you will NOT be able to resume the pro [...]
-    <string lang="en" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_RETRY">Restart the computer and proceed</string>
-    <string lang="en" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_TERMINATE">Permanently terminate the process of creation of the hidden operating system</string>
-    <string lang="en" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_ASK_LATER">Do nothing now and ask again later</string>
-    <string lang="en" key="RESCUE_DISK_HELP_PORTION_1">\nIF POSSIBLE, PLEASE PRINT THIS TEXT (click 'Print' below).\n\n\nHow and When to Use VeraCrypt Rescue Disk (After Encrypting)\n-----------------------------------------------------------------------------------\n\n</string>
-    <string lang="en" key="RESCUE_DISK_HELP_PORTION_2">I. How to Boot VeraCrypt Rescue Disk\n\nTo boot a VeraCrypt Rescue Disk, insert it into your CD/DVD drive and restart your computer. If the VeraCrypt Rescue Disk screen does not appear (or if you do not see the 'Repair Options' item in the 'Keyboard Controls' section of the screen), it is possible that your BIOS is configured to attempt to boot from hard drives before CD/DVD drives. If that is the case, restart your computer, press F [...]
-    <string lang="en" key="RESCUE_DISK_HELP_PORTION_3">II. When and How to Use VeraCrypt Rescue Disk (After Encrypting)\n\n</string>
-    <string lang="en" key="RESCUE_DISK_HELP_PORTION_4">1) If the VeraCrypt Boot Loader screen does not appear after you start your computer (or if Windows does not boot), the VeraCrypt Boot Loader may be damaged. The VeraCrypt Rescue Disk allows you to restore it and thus to regain access to your encrypted system and data (however, note that you will still have to enter the correct password then). In the Rescue Disk screen, select 'Repair Options' > 'Restore VeraCrypt Boot Loader'. Th [...]
-    <string lang="en" key="RESCUE_DISK_HELP_PORTION_5">2) If you repeatedly enter the correct password but VeraCrypt says that the password is incorrect, the master key or other critical data may be damaged. The VeraCrypt Rescue Disk allows you to restore them and thus to regain access to your encrypted system and data (however, note that you will still have to enter the correct password then). In the Rescue Disk screen, select 'Repair Options' > 'Restore key data'. Then enter your pa [...]
-    <string lang="en" key="RESCUE_DISK_HELP_PORTION_6">3) If the VeraCrypt Boot Loader is damaged, you can avoid running it by booting directly from the VeraCrypt Rescue Disk. Insert your Rescue Disk into your CD/DVD drive and then enter your password in the Rescue Disk screen.\n\n</string>
-    <string lang="en" key="RESCUE_DISK_HELP_PORTION_7">4) If Windows is damaged and cannot start, the VeraCrypt Rescue Disk allows you to permanently decrypt the partition/drive before Windows starts. In the Rescue Disk screen, select 'Repair Options' > 'Permanently decrypt system partition/drive'. Enter the correct password and wait until decryption is complete. Then you can e.g. boot your MS Windows setup CD/DVD to repair your Windows installation.\n\n</string>
-    <string lang="en" key="RESCUE_DISK_HELP_PORTION_8">Note: Alternatively, if Windows is damaged (cannot start) and you need to repair it (or access files on it), you can avoid decrypting the system partition/drive by following these steps: If you have multiple operating systems installed on your computer, boot the one that does not require pre-boot authentication. If you do not have multiple operating systems installed on your computer, you can boot a WinPE or BartPE CD/DVD or you can  [...]
-    <string lang="en" key="RESCUE_DISK_HELP_PORTION_9">Note that even if you lose your VeraCrypt Rescue Disk and an attacker finds it, he or she will NOT be able to decrypt the system partition or drive without the correct password.</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_1">\n\nI M P O R T A N T -- PLEASE PRINT THIS TEXT IF POSSIBLE (click 'Print' below).\n\n\nNote: This text will be automatically displayed each time you start the hidden system until you start creating the decoy system.\n\n\n</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_2">How to Create Decoy System Safely and Securely\n----------------------------------------------------------------------------\n\nIn order to achieve plausible deniability, you need to create the decoy operating system now. To do so, follow these steps:\n\n</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_3">1) For security reasons, shut down your computer and leave it powered off for at least several minutes (the longer, the better). This is required to clear the memory, which contains sensitive data. Then turn on the computer but do not boot the hidden system.\n\n</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_4">2) Install Windows on the partition whose content has been erased (i.e. on the partition where the original system, of which the hidden system is a clone, was installed).\n\nIMPORTANT: WHEN YOU START INSTALLING THE DECOY SYSTEM, THE HIDDEN SYSTEM WILL *NOT* BE POSSIBLE TO BOOT (because the VeraCrypt Boot Loader will be erased by the Windows system installer). THIS IS NORMAL AND EXPECTED. PLEASE DO NOT PANIC. YOU WILL BE ABLE TO  [...]
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_5">3) Boot the decoy system (which you installed in step 2 and install VeraCrypt on it).\n\nKeep in mind that the decoy system must never contain any sensitive data.\n\n</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_6">4) On the decoy system, run VeraCrypt and select 'System' > 'Encrypt System Partition/Drive'. The VeraCrypt Volume Creation Wizard window should appear.\n\nThe following steps apply to the VeraCrypt Volume Creation Wizard.\n\n</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_7">5) In the VeraCrypt Volume Creation Wizard, do NOT select the 'Hidden' option. Leave the 'Normal' option selected and click 'Next'.\n\n</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_8">6) Select the option 'Encrypt the Windows system partition' and then click 'Next'.\n\n</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_9">7) If there are only the hidden system and the decoy system installed on the computer, select the option 'Single-boot' (if there are more than these two systems installed on the computer, select 'Multi-boot'). Then click 'Next'.\n\n</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_10">8) IMPORTANT: In this step, FOR THE DECOY SYSTEM, YOU MUST SELECT THE SAME ENCRYPTION ALGORITHM AND HASH ALGORITHM THAT YOU SELECTED FOR THE HIDDEN SYSTEM! OTHERWISE, THE HIDDEN SYSTEM WILL BE INACCESSIBLE! In other words, the decoy system must be encrypted with the same encryption algorithm as the hidden system. Note: The reason is that the decoy system and the hidden system will share a single boot loader, which supports only [...]
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_11">9) In this step, choose a password for the decoy operating system. This will be the password that you will be able to reveal to an adversary if you are asked or forced to disclose your pre-boot authentication password (the other password you can reveal is the one for the outer volume). The existence of the third password (i.e. of the pre-boot authentication password for the hidden operating system) will remain secret.\n\nImport [...]
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_12">10) Follow the remaining instructions in the wizard so as to encrypt the decoy operating system.\n\n\n\n</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_13">After Decoy System Is Created\n------------------------------------------------\n\nAfter you encrypt the decoy system, the whole process of creation of the hidden operating system will be completed and you will be able to use these three passwords:\n\n1) Pre-boot authentication password for the hidden operating system.\n\n2) Pre-boot authentication password for the decoy operating system.\n\n3) Password for the outer volume.\n\ [...]
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_14">If you want to start the hidden operating system, you will just need to enter the password for the hidden operating system in the VeraCrypt Boot Loader screen (which appears after you turn on or restart your computer).\n\nIf you want to start the decoy operating system, you will just need to enter the password for the decoy operating system in the VeraCrypt Boot Loader screen.\n\nThe password for the decoy system can be disclos [...]
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_15">The third password (for the outer volume) can be disclosed to anyone forcing you to reveal the password for the first partition behind the system partition, where both the outer volume and the hidden volume (containing the hidden operating system) reside. The existence of the hidden volume (and of the hidden operating system) will remain secret.\n\n\n</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_16">If you revealed the password for the decoy system to an adversary and he asked you why the free space of the (decoy) system partition contains random data, you could answer, for example: "The partition previously contained a system encrypted by VeraCrypt, but I forgot the pre-boot authentication password (or the system was damaged and stopped booting), so I had to reinstall Windows and encrypt the partition again."\n\n\n</string>
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_17">If all the instructions are followed and if the precautions and requirements listed in the section "Security Requirements and Precautions Pertaining to Hidden Volumes" in the VeraCrypt User's Guide are followed, it should be impossible to prove that the hidden volume and hidden operating system exist, even when the outer volume is mounted or when the decoy operating system is decrypted or started.\n\nIf you save a copy of this  [...]
-    <string lang="en" key="DECOY_OS_INSTRUCTIONS_PORTION_18">WARNING: IF YOU DO NOT PROTECT THE HIDDEN VOLUME (for information on how to do so, refer to the section "Protection of Hidden Volumes Against Damage" in the VeraCrypt User's Guide), DO NOT WRITE TO THE OUTER VOLUME (note that the decoy operating system is NOT installed in the outer volume). OTHERWISE, YOU MAY OVERWRITE AND DAMAGE THE HIDDEN VOLUME (AND THE HIDDEN OPERATING SYSTEM WITHIN IT)!</string>
-    <string lang="en" key="HIDDEN_OS_CREATION_PREINFO_TITLE">Operating System Cloning</string>
-    <string lang="en" key="HIDDEN_OS_CREATION_PREINFO_HELP">In the next steps, VeraCrypt will create the hidden operating system by copying the content of the system partition to the hidden volume (data being copied will be encrypted on the fly with an encryption key different from the one that will be used for the decoy operating system).\n\nPlease note that the process will be performed in the pre-boot environment (before Windows starts) and it may take a long time to complete; several [...]
+    <string lang="fr" key="SYS_ENCRYPTION_PRETEST_RESULT_INFO">Le pré-test a été terminé avec succès.\n\nAVERTISSEMENT : Si l'alimentation est interrompue soudainement alors que les données existantes en place sont entrain d'être chiffrées, ou lorsque le système d'exploitation plante pendant que VeraCrypt chiffre les données existantes en place, certaines parties des données seront endommagées ou perdues. Par conséquent, avant de commencer à chiffrer, veuillez vous assurer que vous dispo [...]
+    <string lang="fr" key="SYSENC_ENCRYPTION_PAGE_INFO">Pour interrompre le processus de chiffrement ou de déchiffrement, vous pouvez cliquez sur Pause ou Reporter à tout moment, quitter cet Assistant, redémarrer ou éteindre votre ordinateur et ensuite reprendre le processus, qui se poursuivra à partir du point où il a été arrêté. Pour éviter les ralentissements lorsque le système ou les applications écrivent ou lisent des données depuis le lecteur système, VeraCrypt attend automatiqueme [...]
+    <string lang="fr" key="NONSYS_INPLACE_ENC_ENCRYPTION_PAGE_INFO">\n\nPour interrompre le processus de chiffrement ou de déchiffrement, vous pouvez cliquez sur Pause ou Reporter à tout moment, quitter cet Assistant, redémarrer ou éteindre votre ordinateur et ensuite reprendre le processus, qui se poursuivra à partir du point où il a été arrêté. Notez que le volume ne pourra pas être monté jusqu'à ce que le chiffrement soit entièrement terminé.</string>
+    <string lang="fr" key="SYSENC_HIDDEN_OS_INITIAL_INFO_TITLE">Système cache démarré</string>
+    <string lang="fr" key="SYSENC_HIDDEN_OS_WIPE_INFO_TITLE">Système original</string>
+    <string lang="fr" key="SYSENC_HIDDEN_OS_WIPE_INFO">Windows génère divers fichiers journaux, fichiers temporaires, etc., sur la partition système. Il enregistre également le contenu de la RAM lors de l'hibernation et le fichiers d'échange situés sur la partition système. Par conséquent, si une personne a analysé les fichiers stockés sur la partition hébergeant le système d'origine (dont le système caché est un clone), il pourrait trouver, par exemple, que vous avez utilisé l'assistant [...]
+    <string lang="fr" key="OS_WIPING_NOT_FINISHED_ASK">Le système d'exploitation caché a été créé avec succès. Toutefois, avant de pouvoir commencer à l'utiliser (et parvenir à un déni plausible), vous devez effacer en toute sécurité (à l'aide de VeraCrypt) tout le contenu de la partition où le système d'exploitation en cours d'exécution est installé. Avant que vous puissiez faire cela, vous devez redémarrer l'ordinateur et, dans l'écran du chargeur de démarrage de VeraCrypt (qui apparaî [...]
+    <string lang="fr" key="HIDDEN_OS_CREATION_NOT_FINISHED_ASK">Vous avez planifié le processus de création d'un système d'exploitation caché. Le processus n'est pas encore terminé. Pour le compléter, vous devez redémarrer l'ordinateur et, dans l'écran du chargeur de démarrage de VeraCrypt (qui apparaît avant le démarrage de Windows), entrer le mot de passe pour le système d'exploitation caché.\n\nNote : Si vous choisissez maintenant de mettre fin au processus de création du système d'ex [...]
+    <string lang="fr" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_RETRY">Redémarrez l'ordinateur et poursuivez</string>
+    <string lang="fr" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_TERMINATE">Fin définitive du processus de création du système d'exploitation caché</string>
+    <string lang="fr" key="HIDDEN_OS_CREATION_NOT_FINISHED_CHOICE_ASK_LATER">Ne faites rien maintenant et demandez à nouveau plus tard</string>
+    <string lang="fr" key="RESCUE_DISK_HELP_PORTION_1">\nSI POSSIBLE, VEUILLEZ IMPRIMER CE TEXTE (cliquez sur "Imprimer").\n\n\nComment et quand utiliser le disque de secours VeraCrypt (Après le chiffrement)\n-----------------------------------------------------------------------------------\n\n</string>
+    <string lang="fr" key="RESCUE_DISK_HELP_PORTION_2">I. Comment démarrer le disque de secours VeraCrypt\n\nPour démarrer un disque de secours VeraCrypt, insérez-le dans votre lecteur de CD/DVD et redémarrez votre ordinateur. Si l'écran VeraCrypt du disque de secours n'apparaît pas (ou si vous ne voyez pas l'élément "Options de réparation" dans la section "Contrôles clavier" de l'écran VeraCrypt du disque de secours), il est possible que votre BIOS soit configuré pour tenter de démarrer [...]
+    <string lang="fr" key="RESCUE_DISK_HELP_PORTION_3">II. Comment et quand utiliser le disque de secours VeraCrypt (Après le chiffrement)\n\n</string>
+    <string lang="fr" key="RESCUE_DISK_HELP_PORTION_4">1) Si l'écran du chargeur de démarrage VeraCrypt n'apparaît pas lorsque vous démarrez votre ordinateur (ou si Windows ne démarre pas), le chargeur de démarrage VeraCrypt peut être endommagé. Le disque de secours de VeraCrypt permet de le restaurer et donc de rétablir l'accès à votre système chiffré et aux données (Cependant, notez que vous devrez toujours entrer le mot de passe). Dans l'écran du disque de secours, sélectionnez "Optio [...]
+    <string lang="fr" key="RESCUE_DISK_HELP_PORTION_5">2) Si vous entrez plusieurs fois le bon mot de passe mais que VeraCrypt dit que le mot de passe est incorrect, la clé principale ou d'autres données critiques peuvent être endommagées. Le disque de secours VeraCrypt vous permet de les restaurer et donc de rétablir l'accès à votre système chiffré et aux données (Cependant, notez que vous devrez toujours entrer le mot de passe). Dans l'écran du disque de secours, sélectionnez "Options  [...]
+    <string lang="fr" key="RESCUE_DISK_HELP_PORTION_6">3) Si le chargeur de démarrage VeraCrypt est endommagé, vous pouvez son exécution en démarrant directement à partir du disque de secours VeraCrypt. Insérez le disque de secours dans le lecteur de CD/DVD et entrez le mot de passe dans l'écran du disque de secours.\n\n</string>
+    <string lang="fr" key="RESCUE_DISK_HELP_PORTION_7">4) Si Windows est endommagé et ne peut pas démarrer, le disque de secours VeraCrypt vous permet en permanence de déchiffrer la partition/disque avant le démarrage de Windows. Dans l'écran du disque de secours, sélectionnez 'Options de réparation' > « Déchiffrer de manière permanente la partition/lecteur système ». Entrez le mot de passe et attendez que le déchiffrage soit terminé. Ensuite, vous pourrez par exemple démarrer sur le  [...]
+    <string lang="fr" key="RESCUE_DISK_HELP_PORTION_8">Remarque : Si Windows est endommagé (il ne démarre plus) et que vous devez le réparer (ou accéder aux fichiers), vous pouvez éviter de déchiffrer la partition/disque système en procédant comme suit : Si vous avez plusieurs systèmes d'exploitation installés sur votre ordinateur, démarrez celui qui ne nécessite pas d'authentification lors du pré-amorçage. Si vous n'avez pas plusieurs systèmes d'exploitation installés sur votre ordinate [...]
+    <string lang="fr" key="RESCUE_DISK_HELP_PORTION_9">Notez que même si vous perdez le disque de secours VeraCrypt et qu'une personne le trouve, elle ne sera pas en mesure de déchiffrer la partition système ou le disque sans le mot de passe.</string>
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_1">\n\nI M P O R T A N T -- VEUILLEZ IMPRIMER CE TEXTE SI POSSIBLE (cliquez sur « Imprimer » ci-dessous).\n\n\nRemarque : Ce texte s'affiche automatiquement chaque fois que vous démarrez le système caché jusqu'à ce que vous commenciez à créer le système de leurre.\n\n\n</string>
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_2">Comment créer un système de leurre en toute sécurité\n----------------------------------------------------------------------------\n\nAfin de permettre le déni plausible, vous devez créer le système d'exploitation leurre maintenant. Pour ce faire, procédez comme suit :\n\n</string>
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_3">1) Pour des raisons de sécurité, arrêtez votre ordinateur et laissez-le éteint pendant plusieurs minutes (plus c'est long, mieux c'est). Ceci est nécessaire pour effacer la mémoire qui contient des données sensibles. Puis allumez l'ordinateur, mais ne démarrez pas le système caché.\n\n</string>
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_4">2) Installer Windows sur la partition dont le contenu a été effacé (c'est-à-dire sur la partition où le système d'origine, pour lequel le système caché est un clone, a été installé).\n\nIMPORTANT : LORSQUE VOUS DÉMARREZ L'INSTALLATION DU SYSTÈME LEURRE, ON NE POURRA PAS DÉMARRER SUR LE SYSTÈME CACHÉ (parce que le chargeur de démarrage  VeraCrypt sera effacé par l'installateur de Windows). C'EST UN COMPORTEMENT NORMAL ET ATTENDU. [...]
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_5">3) Démarrer le système leurre (que vous avez installé à l'étape 2 et installer VeraCrypt sur dessus).\n\nGardez à l'esprit que le système leurre ne doit jamais contenir les données sensibles.\n\n</string>
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_6">4) Sur le système leurre, exécutez VeraCrypt et sélectionnez « Système » > « Chiffrer la partition/disque système ». La fenêtre de l'assistant de création de volume VeraCrypt devrait apparaitre.\n\nLes étapes suivantes s'appliquent à l'assistant de création de volume VeraCrypt.\n\n</string>
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_7">5) Dans l'assistant de création de volume VeraCrypt, ne sélectionnez pas l'option « Caché ». Laissez l'option « Normale » sélectionnée, puis cliquez sur « Suivant ».\n\n</string>
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_8">6) Sélectionnez l'option « Chiffrer la partition système Windows » et cliquez ensuite sur « Suivant ».\n\n</string>
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_9">7) S'il y a seulement le système caché et le système leurre installés sur l'ordinateur, sélectionnez l'option « Amorçage unique » (s'il y a plus que ces deux systèmes installés sur l'ordinateur, sélectionnez « Multi amorçage »). Puis cliquez sur « Suivant ».\n\n</string>
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_10">8) IMPORTANT : dans cette étape, POUR LE SYSTÈME LEURRE, VOUS DEVEZ SÉLECTIONNER LE MÊME ALGORITHME DE CHIFFRAGE ET DE HACHAGE QUE VOUS AVEZ SÉLECTIONNÉ POUR LE SYSTÈME CACHÉ! DANS LE CAS CONTRAIRE, LE SYSTÈME CACHÉ NE SERA PLUS ACCESSIBLES ! En d'autres termes, le système leurre doit être chiffré avec le même algorithme de chiffrement que le système caché. Note : La raison est que le système leurre et le système caché partager [...]
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_11">9) Dans cette étape, choisissez un mot de passe pour le système d'exploitation leurre. Ce sera le mot de passe d'authentification de pré-amorçage que vous serez en mesure de révéler si quelqu'un le demande ou que vous êtes forcé de le divulguer (l'autre mot de passe que vous pouvez révéler est celui du volume externe). L'existence du troisième mot de passe (c'est-à-dire du mot de passe d'authentification de pré-amorçage pour le [...]
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_12">10) Suivez les instructions restantes de l'assistant afin de chiffrer le système d'exploitation leurre.\n\n\n\n</string>
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_13">Après que le système leurre est créé\n------------------------------------------------\n\nAprès avoir chiffrer le système leurre, le processus de création du système d'exploitation caché s'achèvera et vous serez en mesure d'utiliser ces trois mots de passe : \n\n1) Mot de passe d'authentification de pré-amorçage pour le système d'exploitation cachés.\n\n2 Mot de passe d'authentification de pré-amorçage pour le système d'exploit [...]
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_14">Si vous souhaitez démarrer le système d'exploitation caché, vous devrez entrer le mot de passe dans l'écran du chargeur de démarrage VeraCrypt pour le système d'exploitation caché (qui s'affiche lorsque vous allumez ou redémarrez votre ordinateur).\n\nSi vous souhaitez démarrer le système d'exploitation leurre, vous devrez entrer le mot de passe pour le système d'exploitation leurre dans l'écran du chargeur de démarrage VeraCry [...]
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_15">Le troisième mot de passe (pour le volume extérieur) peut être communiqué à quiconque vous demande de révéler le mot de passe pour la première partition derrière la partition système, là où résident aussi bien le volume extérieur que le volume caché (contenant le système d'exploitation caché). L'existence du volume caché (et du système d'exploitation caché) restera secrète.\n\n\n</string>
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_16">Si vous avez révélé le mot de passe pour le système leurre à quelqu'un et qu'il vous a demand pourquoi l'espace libre de la partition système (leurre) contient des données aléatoires, vous pouvez par exemple répondre : "La partition contenait auparavant un système chiffré par VeraCrypt, mais j'ai oublié le mot de passe d'authentification de pré-amorçage (ou le système a été endommagé et ne démarrait plus), donc j'ai dû réinstal [...]
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_17">Si toutes les instructions, les précautions et les exigences énumérées dans la section « Exigences et précautions de sécurité relatives aux volumes cachés » dans le guide de l'utilisateur VeraCrypt sont suivies, il devrait être impossible de prouver que le volume caché et le système d'exploitation caché existent, même si le volume extérieur est monté ou lorsque le système d'exploitation leurre est déchiffré ou démarré.\n\nSi vo [...]
+    <string lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_18">AVERTISSEMENT : SI VOUS NE PAS PROTÉGER LE VOLUME CACHÉ (pour plus d'informations sur la façon de le faire, reportez-vous à la section « Protection des volumes cachés contre les dommages » dans le Guide de l'utilisateur VeraCrypt), N'ÉCRIVEZ PAS SUR LE VOLUME EXTERNE (Notez que le système d'exploitation leurre n'est pas installé sur le volume externe). SINON, VOUS POUVEZ ÉCRASER ET ENDOMMAGER LE VOLUME CACHÉ (ET LE SYSTÈME D'EX [...]
+    <string lang="fr" key="HIDDEN_OS_CREATION_PREINFO_TITLE">Clonage du système d'exploitation</string>
+    <string lang="fr" key="HIDDEN_OS_CREATION_PREINFO_HELP">Dans les prochaines étapes, VeraCrypt va créer le système d'exploitation caché en copiant le contenu de la partition système sur le volume caché (les données à copier à la volée seront chiffrées avec une clé de chiffrement différente de celle qui sera utilisée pour le système d'exploitation leurre).\n\nVeuillez noter que le processus sera effectué dans l'environnement de pré-amorçage (avant le démarrage de Windows) et cela peut  [...]
     <string lang="fr" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Voulez-vous annuler l'intégralité du processus de création du système d'exploitation caché ?\n\nNote : Vous ne pourrez PAS reprendre le processus si vous l'annulez maintenant.</string>
     <string lang="fr" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Voulez-vous annuler le pré-test de chiffrement du système ?</string>
-    <string lang="en" key="BOOT_PRETEST_FAILED_RETRY">The VeraCrypt system encryption pretest failed. Do you want to try again?\n\nIf you select 'No', the pre-boot authentication component will be uninstalled.\n\nNotes:\n\n- If the VeraCrypt Boot Loader did not ask you to enter the password before Windows started, it is possible that your operating system does not boot from the drive on which it is installed. This is not supported.\n\n- If you used an encryption algorithm other than AES  [...]
+    <string lang="fr" key="BOOT_PRETEST_FAILED_RETRY">Le prétest de chiffrement du système VeraCrypt a échoué. Voulez-vous réessayer ?\n\nSi vous sélectionnez « Non », le composant d'authentification de pré-amorçage sera désinstallé.\n\nRemarques :\n\n- Si le chargeur de démarrage de VeraCrypt n'a pas demandé d'entrer le mot de passe avant que Windows a commencé à démarrer, il est possible que votre système d'exploitation ne démarre pas depuis le disque sur lequel il est installé. Ceci n [...]
     <string lang="fr" key="SYS_DRIVE_NOT_ENCRYPTED">La partition/le disque système ne semble pas chiffré (totalement ou en partie).</string>
     <string lang="fr" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Votre partition/votre disque système est chiffré (totalement ou en partie).\n\nDéchiffrez votre partition/votre disque système entièrement avant de poursuivre. Pour cela sélectionnez 'Système' > 'Déchiffrer définitivement la partition/le disque système' depuis la barre des menus de la fenêtre principale VeraCrypt.</string>
-    <string lang="en" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">When the system partition/drive is encrypted (partially or fully), you cannot downgrade VeraCrypt (but you can upgrade it or reinstall the same version).</string>
+    <string lang="fr" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Lorsque la partition/lecteur système est chiffré (partiellement ou totalement), vous ne pouvez pas rétrograder VeraCrypt (mais vous pouvez le mettre à jour ou réinstaller la même version).</string>
     <string lang="fr" key="SYS_ENCRYPTION_OR_DECRYPTION_IN_PROGRESS">Votre partition/votre disque est en cours de chiffrement, déchiffrement ou de modification. Interrompez le processus en cours (ou attendez son arrêt) avant de poursuivre.</string>
     <string lang="fr" key="SYSTEM_ENCRYPTION_IN_PROGRESS_ELSEWHERE">Une instance de l'assistant de création de volume de VeraCrypt existe déjà sur ce système et procède (ou se prépare à procéder) au chiffrement/déchiffrement de la partition/du disque système. Avant de poursuivre, patientez jusqu'à la fin du traitement ou arrêtez-le. Si vous ne pouvez pas l'arrêter, redémarrer votre ordinateur avant de poursuivre.</string>
     <string lang="fr" key="SYSTEM_ENCRYPTION_NOT_COMPLETED">Le processus de chiffrement ou de déchiffrement de la partition/du disque système n'est pas terminé. Patientez jusqu'à ce qu'il finisse avant de poursuivre.</string>
     <string lang="fr" key="ERR_ENCRYPTION_NOT_COMPLETED">Erreur : Le processus de chiffrement de la partition/du disque n'est pas terminé. Il doit d'abord être achevé.</string>
-    <string lang="en" key="ERR_NONSYS_INPLACE_ENC_INCOMPLETE">Error: The process of encryption of the partition/volume has not been completed. It must be completed first.\n\nNote: To resume the process, select 'Volumes' > 'Resume Interrupted Process' from the menu bar of the main VeraCrypt window.</string>
+    <string lang="fr" key="ERR_NONSYS_INPLACE_ENC_INCOMPLETE">Erreur : Le processus de chiffrement de la partition ou du volume n'a pas été terminé. Il d'abord doit être complété.\n\nRemarque : Pour reprendre le processus, sélectionnez « Volumes » > « Reprendre le processus interrompu » de la barre de menus de la fenêtre principale de VeraCrypt.</string>
     <string lang="fr" key="ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG">Le mot de passe est correct, VeraCrypt a déchiffré avec succès l'en-tête du volume et a détecté que ce volume est un volume caché. Cependant, vous ne pouvez pas modifier l'en-tête d'un volume système caché de cette manière.\n\nPour changer le mot de passe d'un volume système caché, démarrer le système d'exploitation résidant dans le volume caché, puis sélectionnez 'Système' > 'Modifier le mot de passe...' depuis la barre [...]
     <string lang="fr" key="CANNOT_DECRYPT_HIDDEN_OS">VeraCrypt ne supporte pas le déchiffrement 'sur place' d'une partition système cachée .\n\nNote : Si vous voulez déchiffrer la partition système leurre, démarrez le système leurre puis sélectionnez 'Système' > 'Déchiffrer définitivement la partition/le disque système' dans la barre des menus de la fenêtre principale de VeraCrypt.</string>
     <string lang="fr" key="ERR_PARAMETER_INCORRECT">Erreur : paramètre incorrect/invalide.</string>
     <string lang="fr" key="DEVICE_SELECTED_IN_NON_DEVICE_MODE">Vous avez sélectionné une partition ou un périphérique mais le mode assistant que vous avez sélectionné n'est valable que pour les fichiers conteneurs.\n\nVoulez-vous changer le mode assistant ?</string>
     <string lang="fr" key="CONFIRM_CHANGE_WIZARD_MODE_TO_FILE_CONTAINER">Voulez-vous créer à la place un fichier conteneur VeraCrypt ?</string>
-    <string lang="en" key="CONFIRM_SYSTEM_ENCRYPTION_MODE">You have selected the system partition/drive (or the boot partition), but the wizard mode you selected is suitable only for non-system partitions/drives.\n\nDo you want to set up pre-boot authentication (which means that you will need to enter your password each time before Windows boots/starts) and encrypt the system partition/drive?</string>
+    <string lang="fr" key="CONFIRM_SYSTEM_ENCRYPTION_MODE">Vous avez sélectionné le partition/disque système (ou la partition de démarrage), mais le mode assistant sélectionné ne convient que pour les partitions/disques non-système.\n\nVous voulez configurer l'authentification de pré-amorçage (ce qui signifie que vous devrez entrer votre mot de passe chaque fois que Windows démarre) et chiffrer la partition/disque système ?</string>
     <string lang="fr" key="CONFIRM_DECRYPT_SYS_DEVICE">Êtes-vous sûr de vouloir déchiffrer définitivement la partition/le disque système ?</string>
     <string lang="fr" key="CONFIRM_DECRYPT_SYS_DEVICE_CAUTION">ATTENTION : Si vous déchiffrez définitivement la partition/le disque système, des données non chiffrées y seront écritent.\n\nÊtes-vous vraiment sûr de vouloir déchiffrer définitivement la partition/le disque système ?</string>
-    <string lang="en" key="CONFIRM_CASCADE_FOR_SYS_ENCRYPTION">Warning: If you use a cascade of ciphers for system encryption, you may encounter the following issues:\n\n1) The VeraCrypt Boot Loader is larger than normal and, therefore, there is not enough space in the first drive track for a backup of the VeraCrypt Boot Loader. Hence, whenever it gets damaged (which often happens, for example, during inappropriately designed anti-piracy activation procedures of certain programs), you wi [...]
+    <string lang="fr" key="CONFIRM_CASCADE_FOR_SYS_ENCRYPTION">AVERTISSEMENT : Si vous utilisez une cascade d'algorithmes de chiffrement pour le chiffrement du système, vous pouvez rencontrer les problèmes suivants :\n\n1) La taille du chargeur de démarrage de VeraCrypt est supérieur à la normale et il n'y a donc pas assez d'espace dans la première plage du disque pour une sauvegarde du chargeur de démarrage VeraCrypt. Par conséquent, chaque fois qu'il est endommagé (ce qui arrive souven [...]
     <string lang="fr" key="NOTE_CASCADE_FOR_SYS_ENCRYPTION">Si vous rencontrez un des problèmes décrits précédemment, déchiffrez la partition/le disque (s'il est chiffré) puis essayez de le chiffrer à nouveau en utilisant un algorithme sans cascade (ex : AES).</string>
-    <string lang="en" key="UPDATE_TC_IN_DECOY_OS_FIRST">WARNING: For safety and security reasons, you should update VeraCrypt on the decoy operating system before you update it on the hidden operating system.\n\nTo do so, boot the decoy system and run the VeraCrypt installer from within it. Then boot the hidden system and run the installer from within it as well.\n\nNote: The decoy system and the hidden system share a single boot loader. If you upgraded VeraCrypt only on the hidden syste [...]
+    <string lang="fr" key="UPDATE_TC_IN_DECOY_OS_FIRST">AVERTISSEMENT : Pour des raisons de sécurité, vous devez mettre à jour VeraCrypt sur le système d'exploitation leurre avant de le mettre à jour sur le système d'exploitation caché.\n\nPour ce faire, démarrer le système leurre et lancez l'installation de VeraCrypt dessus. Puis démarrer le système caché et exécutez aussi l'installation dessus.\n\nRemarque : Le système leurre et le système caché partagent un chargeur de démarrage uniqu [...]
     <string lang="fr" key="UPDATE_TC_IN_HIDDEN_OS_TOO">Le numéro de version du chargeur d'amorçage de VeraCrypt qui a démarré ce système d'exploitation est différent de celui du pilote de VeraCrypt (et de ses applications) installé sur ce système.\n\nVous devriez lancer l'installeur VeraCrypt (dont le numéro de version est le même que celui du chargeur d'amorçage de VeraCrypt) pour mettre à jour la version de VeraCrypt installé dans ce système d'exploitation.</string>
-    <string lang="en" key="BOOT_LOADER_VERSION_DIFFERENT_FROM_DRIVER_VERSION">The version number of the VeraCrypt Boot Loader that booted this operating system is different from the version number of the VeraCrypt driver (and of the VeraCrypt applications) installed on this system. Note that older versions may contain bugs fixed in later versions.\n\nIf you did not boot from the VeraCrypt Rescue Disk, you should reinstall VeraCrypt or upgrade it to the latest stable version (the boot loa [...]
+    <string lang="fr" key="BOOT_LOADER_VERSION_DIFFERENT_FROM_DRIVER_VERSION">Le numéro de version du chargeur de démarrage VeraCrypt qui a démarré ce système d'exploitation est différent du numéro de version du pilote VeraCrypt (et des applications VeraCrypt) installé sur ce système. Notez que les versions plus anciennes peuvent contenir des bogues corrigés dans les versions ultérieures.\n\nSi vous n'avez pas démarré depuis le disque de secours VeraCrypt, vous devez réinstaller VeraCryp [...]
     <string lang="fr" key="BOOT_LOADER_UPGRADE_OK">Le chargeur d'amorçage de VeraCrypt a été mis à jour.\n\nIl est recommandé de créer un nouveau disque de secours VeraCrypt (qui contiendra la nouvelle version du chargeur d'amorçage de VeraCrypt) en sélectionnant 'Système' > 'Créer un disque de secours' après avoir redémarré votre ordinateur.</string>
     <string lang="fr" key="BOOT_LOADER_UPGRADE_OK_HIDDEN_OS">Le chargeur d'amorçage de VeraCrypt a été mis à jour.\n\nIl est fortement recommandé de démarrer le système d'exploitation leurre et de créer un nouveau disque de secours VeraCrypt (qui contiendra la nouvelle version du chargeur d'amorçage de VeraCrypt) en sélectionnant 'Système' > Créer un disque de secours'.</string>
     <string lang="fr" key="BOOT_LOADER_UPGRADE_FAILED">Échec de la mise à jour du chargeur d'amorçage de VeraCrypt.</string>
-    <string lang="en" key="SYS_DRIVE_SIZE_PROBE_TIMEOUT">VeraCrypt failed to detect the real size of the system drive and, therefore, the size reported by the operating system (which may be smaller than the real size) will be used. Also note that this is not a bug in VeraCrypt.</string>
+    <string lang="fr" key="SYS_DRIVE_SIZE_PROBE_TIMEOUT">VeraCrypt n'a pas pu détecter la taille réelle du disque système et, par conséquent, la taille indiquée par le système d'exploitation (qui peut être infèrieure à la taille réelle) sera utilisée. Notez également que ce n'est pas un bug dans VeraCrypt.</string>
     <string lang="fr" key="HIDDEN_SECTOR_DETECTION_FAILED_PREVIOUSLY">AVERTISSEMENT : Il semble que VeraCrypt a déjà essayé de détecter des secteurs cachés sur ce disque système. Si vous avez rencontré des problèmes lors du précédent processus de détection, vous pouvez vous épargner des problèmes en évitant maintenant la détection des secteurs cachés. Notez que si vous le faites, VeraCrypt utilisera la taille donnée par le système d'exploitation (qui peut être plus petite que la taille r [...]
     <string lang="fr" key="SKIP_HIDDEN_SECTOR_DETECTION">Eviter la détection des secteurs cachés (utiliser la taille donnée par le système d'exploitation)</string>
     <string lang="fr" key="RETRY_HIDDEN_SECTOR_DETECTION">Essayer à nouveau de détecter des secteurs cachés</string>
-    <string lang="en" key="ENABLE_BAD_SECTOR_ZEROING">Error: Content of one or more sectors on the disk cannot be read (probably due to a physical defect).\n\nThe process of in-place encryption can continue only when the sectors have been made readable again. VeraCrypt can attempt to make these sectors readable by writing zeros to the sectors (subsequently such all-zero blocks would be encrypted). However, note that any data stored in the unreadable sectors will be lost. If you want to a [...]
-    <string lang="en" key="DISCARD_UNREADABLE_ENCRYPTED_SECTORS">Error: Content of one or more sectors on the disk cannot be read (probably due to a physical defect).\n\nTo be able to proceed with decryption, VeraCrypt will have to discard the content of the unreadable sectors (the content will be replaced with pseudorandom data). Please note that, before proceeding, you can attempt to recover portions of any corrupted data using appropriate third-party tools.\n\nDo you want VeraCrypt to [...]
-    <string lang="en" key="ZEROED_BAD_SECTOR_COUNT">Note: VeraCrypt has replaced the content of %I64d unreadable sectors (%s) with encrypted all-zero plaintext blocks.</string>
-    <string lang="en" key="ENTER_TOKEN_PASSWORD">Enter password/PIN for token '%s':</string>
+    <string lang="fr" key="ENABLE_BAD_SECTOR_ZEROING">Erreur : Le contenu d'un ou plusieurs secteurs sur le disque ne peut pas être lu (probablement en raison d'un défaut physique).\n\nLe processus de chiffrement sur-place peut continuer uniquement lorsque les secteurs seront à nouveau lisibles. VeraCrypt peut essayer de rendre ces secteurs lisible en y écrivant des zéros (par la suite ces blocs de seront chiffrés). Toutefois, notez que toutes les données stockées sur les secteurs illisi [...]
+    <string lang="fr" key="DISCARD_UNREADABLE_ENCRYPTED_SECTORS">Erreur : Le contenu d'un ou plusieurs secteurs sur le disque ne peut pas être lu (probablement en raison d'un défaut physique).\n\nPour être en mesure d'aller de l'avant, VeraCrypt devra écarter le contenu des secteurs illisibles (le contenu sera remplacé par les données pseudo-aléatoires). Veuillez noter qu'avant de poursuivre, vous pouvez essayer de récupérer des parties des données endommagées à l'aide d'outils tiers app [...]
+    <string lang="fr" key="ZEROED_BAD_SECTOR_COUNT">Remarque : VeraCrypt a remplacé le contenu de % I64d secteurs illisibles (%s) avec des blocs chiffrés de zéros en texte brut.</string>
+    <string lang="fr" key="ENTER_TOKEN_PASSWORD">Entrez le mot de passe/PIN pour le jeton '%s':</string>
     <string lang="fr" key="PKCS11_LIB_LOCATION_HELP">Afin de permettre à VeraCrypt d'accéder à un jeton de sécurité ou une carte à puce, vous devez d'abord installer une bibliothèque logicielle PKCS #11 pour le jeton ou la carte à puce. La bibliothèque peut être fournie par le périphérique ou disponible en téléchargement sur le site web du vendeur ou d'autres tiers.\n\nAprès avoir installé la bibliothèque, vous pouvez soit la sélectionner manuellement en cliquant sur "Bibliothèque...", s [...]
     <string lang="fr" key="SELECT_PKCS11_MODULE_HELP">Note : Pour le nom de fichier et l'emplacement de la bibliothèque PKCS #11 installée pour votre jeton de sécurité ou carte à puce, veuillez vous reporter à la documentation fournie avec le jeton, la carte ou le logiciel tiers.\n\nAppuyer sur "OK" pour sélectionner le chemin et le nom de fichier.</string>
     <string lang="fr" key="NO_PKCS11_MODULE_SPECIFIED">Afin de permettre à VeraCrypt d'accéder à un jeton de sécurité ou une carte à puce, vous devez d'abord sélectionner une bibliothèque logicielle PKCS #11 pour le jeton/la carte. Pour cela, allez dans "Paramètres" > "Jetons de sécurité...".</string>
-    <string lang="en" key="PKCS11_MODULE_INIT_FAILED">Failed to initialize PKCS #11 security token library.\n\nPlease make sure the specified path and filename refer to a valid PKCS #11 library. To specify a PKCS #11 library path and filename, select 'Settings' > 'Security Tokens'.</string>
-    <string lang="en" key="PKCS11_MODULE_AUTO_DETECTION_FAILED">No PKCS #11 library has been found in the Windows system directory.\n\nPlease make sure that a PKCS #11 library for your security token (or for your smart card) is installed (such a library may be supplied with the token/card or it may be available for download from the website of the vendor or other third parties). If it is installed in a directory other than the Windows system directory, click 'Select Library' to locate th [...]
-    <string lang="en" key="NO_TOKENS_FOUND">No security token found.\n\nPlease make sure your security token is connected to your computer and the correct device driver for your token is installed.</string>
-    <string lang="en" key="TOKEN_KEYFILE_NOT_FOUND">Security token keyfile not found.</string>
-    <string lang="en" key="TOKEN_KEYFILE_ALREADY_EXISTS">A security token keyfile with the same name already exists.</string>
-    <string lang="en" key="CONFIRM_SEL_FILES_DELETE">Do you want to delete the selected files?</string>
-    <string lang="en" key="INVALID_TOKEN_KEYFILE_PATH">Security token keyfile path is invalid.</string>
-    <string lang="en" key="SECURITY_TOKEN_ERROR">Security token error</string>
-    <string lang="en" key="CKR_PIN_INCORRECT">Password for security token is incorrect.</string>
-    <string lang="en" key="CKR_DEVICE_MEMORY">The security token does not have enough memory/space to perform the requested operation.\n\nIf you are attempting to import a keyfile, you should select a smaller file or use a keyfile generated by VeraCrypt (select 'Tools' > 'Keyfile Generator').</string>
+    <string lang="fr" key="PKCS11_MODULE_INIT_FAILED">Impossible d'initialiser la bibliothèque du jeton de sécurité PKCS #11.\n\nAssurez-vous que le nom et le chemin d'accès spécifié, font référence à une bibliothèque de PKCS #11 valide. Pour spécifier un chemin de bibliothèque PKCS #11 et un nom de fichier, sélectionnez « Paramètres » > « Jetons de sécurité ».</string>
+    <string lang="fr" key="PKCS11_MODULE_AUTO_DETECTION_FAILED">Aucune bibliothèque PKCS #11 n'a été trouvé dans le répertoire système de Windows.\n\nAssurez-vous qu'une bibliothèque PKCS #11 pour votre jeton de sécurité (ou de votre carte à puce) est installée (une telle bibliothèque peut-être être fournie avec le jeton/carte ou il peut être disponible en téléchargement depuis le site Web du fournisseur ou de tierces parties). S'il est installé dans un répertoire différent du répertoire [...]
+    <string lang="fr" key="NO_TOKENS_FOUND">Jeton de sécurité non trouvé.\n\nVeuillez-vous assurer que votre jeton de sécurité est relié à votre ordinateur et que le pilote de périphérique approprié pour votre jeton est installé.</string>
+    <string lang="fr" key="TOKEN_KEYFILE_NOT_FOUND">Fichier clé du jeton de sécurité non trouvé.</string>
+    <string lang="fr" key="TOKEN_KEYFILE_ALREADY_EXISTS">Un fichier clé du jeton de sécurité de même nom existe déjà.</string>
+    <string lang="fr" key="CONFIRM_SEL_FILES_DELETE">Voulez-vous effacer les fichiers sélectionnés ?</string>
+    <string lang="fr" key="INVALID_TOKEN_KEYFILE_PATH">Le chemin du fichier clé du jeton de sécurité est invalide.</string>
+    <string lang="fr" key="SECURITY_TOKEN_ERROR">Erreur du jeton de sécurité.</string>
+    <string lang="fr" key="CKR_PIN_INCORRECT">Le mot de passe pour le jeton de sécurité est incorrect.</string>
+    <string lang="fr" key="CKR_DEVICE_MEMORY">Le jeton de sécurité n'a pas assez de mémoire, d'espace pour effectuer l'opération demandée.\n\nSi vous essayez d'importer un fichier de clé, vous devez sélectionner un fichier plus petit ou utiliser un fichier clé généré par VeraCrypt (sélectionnez « Outils » > « Générateur de fichier clé »).</string>
     <string lang="fr" key="ALL_TOKEN_SESSIONS_CLOSED">Toutes les sessions de jeton de sécurité ouvertes ont été fermées.</string>
-    <string lang="en" key="SELECT_TOKEN_KEYFILES">Select Security Token Keyfiles</string>
-    <string lang="en" key="TOKEN_SLOT_ID">Slot</string>
-    <string lang="en" key="TOKEN_NAME">Token name</string>
-    <string lang="en" key="TOKEN_DATA_OBJECT_LABEL">File name</string>
-    <string lang="en" key="BOOT_PASSWORD_CACHE_KEYBOARD_WARNING">IMPORTANT: Please note that pre-boot authentication passwords are always typed using the standard US keyboard layout. Therefore, a volume that uses a password typed using any other keyboard layout may be impossible to mount using a pre-boot authentication password (note that this is not a bug in VeraCrypt). To allow such a volume to be mounted using a pre-boot authentication password, follow these steps:\n\n1) Click 'Select [...]
-    <string lang="en" key="SYS_FAVORITES_KEYBOARD_WARNING">System favorite volumes will be mounted using the pre-boot authentication password. If any system favorite volume uses a different password, it will not be mounted.</string>
-    <string lang="en" key="SYS_FAVORITES_ADMIN_ONLY_INFO">Please note that if you need to prevent normal VeraCrypt volume actions (such as 'Dismount All', auto-dismount, etc.) from affecting system favorite volumes, you should enable the option 'Allow only administrators to view and dismount system favorite volumes in VeraCrypt'. In addition, when VeraCrypt is run without administrator privileges (the default on Windows Vista and later), system favorite volumes will not be displayed in t [...]
-    <string lang="en" key="SYS_FAVORITES_ADMIN_ONLY_WARNING">IMPORTANT: Please keep in mind that if this option is enabled and VeraCrypt does not have administrator privileges, mounted system favorite volumes are NOT displayed in the VeraCrypt application window and they cannot be dismounted. Therefore, if you need e.g. to dismount a system favorite volume, please right-click the VeraCrypt icon (in the Start menu) and select 'Run as administrator' first. The same limitation applies to th [...]
-    <string lang="en" key="SETTING_REQUIRES_REBOOT">Note that this setting takes effect only after the operating system is restarted.</string>
-    <string lang="en" key="COMMAND_LINE_ERROR">Error while parsing command line.</string>
+    <string lang="fr" key="SELECT_TOKEN_KEYFILES">Sélectionnez les fichiers clés du jeton de sécurité</string>
+    <string lang="fr" key="TOKEN_SLOT_ID">Emplacement</string>
+    <string lang="fr" key="TOKEN_NAME">Nom du jeton</string>
+    <string lang="fr" key="TOKEN_DATA_OBJECT_LABEL">Nom du fichier</string>
+    <string lang="fr" key="BOOT_PASSWORD_CACHE_KEYBOARD_WARNING">IMPORTANT : Veuillez noter que le mot de passe pour l'authentification de pré-amorçage est toujours tapé à l'aide de la disposition du clavier américain standard. Par conséquent, un volume qui utilise un mot de passe tapé à l'aide de toute autre type de clavier peut être impossible à monter à l'aide d'un mot de passe d'authentification de pré-amorçage (Notez que ce n'est pas un bug dans VeraCrypt). Pour permettre un tel vol [...]
+    <string lang="fr" key="SYS_FAVORITES_KEYBOARD_WARNING">Les volumes système préférés seront montés en utilisant le mot de passe d'authentification de pré-amorçage. Si un des volumes préférés du système utilise un mot de passe différent, il ne sera pas monté.</string>
+    <string lang="fr" key="SYS_FAVORITES_ADMIN_ONLY_INFO">Notez que si vous avez besoin d'empêcher des actions normales sur un volume VeraCrypt (par exemple "Démonter tout", "Auto-démontage", etc.) d'affecter les volumes système préférés, vous devez activer l'option "Permettre aux seuls administrateurs d'afficher et de démonter les volumes système préférés dans VeraCrypt". En outre, lorsque VeraCrypt est exécuté sans privilèges d'administrateur (par défaut avec Windows Vista et les versi [...]
+    <string lang="fr" key="SYS_FAVORITES_ADMIN_ONLY_WARNING">IMPORTANT : Gardez à l'esprit que si cette option est activée et que VeraCrypt n'a pas de privilèges d'administrateur, les volumes système préférés montés ne sont pas affichés dans la fenêtre de l'application VeraCrypt et ils ne peuvent pas être démontés. Par conséquent, si vous avez besoin par exemple de démonter un volume système préféré, d'abord cliquez-droit sur l'icône VeraCrypt (dans le menu Démarrer) et sélectionnez « Ex [...]
+    <string lang="fr" key="SETTING_REQUIRES_REBOOT">Notez que ce paramètre prend effet uniquement après le redémarrage du système d'exploitation.</string>
+    <string lang="fr" key="COMMAND_LINE_ERROR">Erreur lors de l'analyse de ligne de commande.</string>
     <string lang="fr" key="RESCUE_DISK">Disque de secours</string>
     <string lang="fr" key="SELECT_FILE_AND_MOUNT">Sélectionner un &fichier et monter...</string>
     <string lang="fr" key="SELECT_DEVICE_AND_MOUNT">Sélectionner un &périphérique et monter...</string>
-    <string lang="en" key="DISABLE_NONADMIN_SYS_FAVORITES_ACCESS">Allow only administrators to view and dismount system favorite volumes in VeraCrypt</string>
-    <string lang="en" key="MOUNT_SYSTEM_FAVORITES_ON_BOOT">Mount system favorite volumes when Windows starts (in the initial phase of the startup procedure)</string>
-    <string lang="en" key="MOUNTED_VOLUME_DIRTY">Warning: The filesystem on the volume mounted as '%s' was not cleanly dismounted and thus may contain errors. Using a corrupted filesystem can cause data loss or data corruption.\n\nNote: Before you physically remove or switch off a device (such as a USB flash drive or an external hard drive) where a mounted VeraCrypt volume resides, you should always dismount the VeraCrypt volume in VeraCrypt first.\n\n\nDo you want Windows to attempt to  [...]
-    <string lang="en" key="SYS_FAVORITE_VOLUME_DIRTY">Warning: One or more system favorite volumes were not cleanly dismounted and thus may contain filesystem errors. Please see the system event log for further details.\n\nUsing a corrupted filesystem can cause data loss or data corruption. You should check the affected system favorite volume(s) for errors (right-click each of them in VeraCrypt and select 'Repair Filesystem').</string>
-    <string lang="en" key="FILESYS_REPAIR_CONFIRM_BACKUP">Warning: Repairing a damaged filesystem using the Microsoft 'chkdsk' tool might cause loss of files in damaged areas. Therefore, it is recommended that you first back up the files stored on the VeraCrypt volume to another, healthy, VeraCrypt volume.\n\nDo you want to repair the filesystem now?</string>
-    <string lang="en" key="MOUNTED_CONTAINER_FORCED_READ_ONLY">Volume '%s' has been mounted as read-only because write access was denied.\n\nPlease make sure the security permissions of the file container allow you to write to it (right-click the container and select Properties > Security).\n\nNote that, due to a Windows issue, you may see this warning even after setting the appropriate security permissions. This is not caused by a bug in VeraCrypt. A possible solution is to move your [...]
-    <string lang="en" key="MOUNTED_DEVICE_FORCED_READ_ONLY">Volume '%s' had to be mounted as read-only because write access was denied.\n\nPlease make sure no other application (e.g. antivirus software) is accessing the partition/device on which the volume is hosted.</string>
-    <string lang="en" key="MOUNTED_DEVICE_FORCED_READ_ONLY_WRITE_PROTECTION">Volume '%s' has been mounted as read-only because the operating system reported the host device to be write-protected.\n\nPlease note that some custom chipset drivers have been reported to cause writable media to falsely appear write-protected. This problem is not caused by VeraCrypt. It may be solved by updating or uninstalling any custom (non-Microsoft) chipset drivers that are currently installed on this syst [...]
+    <string lang="fr" key="DISABLE_NONADMIN_SYS_FAVORITES_ACCESS">Permettre seulement aux administrateurs d'afficher et de démonter les volumes système préférés dans VeraCrypt</string>
+    <string lang="fr" key="MOUNT_SYSTEM_FAVORITES_ON_BOOT">Monter les volumes système préférés au démarrage de Windows (dans la phase initiale de la procédure de démarrage)</string>
+    <string lang="fr" key="MOUNTED_VOLUME_DIRTY">AVERTISSEMENT : Le système de fichiers sur le volume monté comme « %s » n'a pas été correctement démonté et peut donc contenir des erreurs. Utiliser un système de fichiers endommagé peut provoquer des pertes ou de la corruption de données.\n\nRemarque : Avant de retirer physiquement ou de désactiver un périphérique (tel qu'une clé USB ou un disque dur externe) sur lequel un volume monté de VeraCrypt réside, vous devriez toujours démonter l [...]
+    <string lang="fr" key="SYS_FAVORITE_VOLUME_DIRTY">AVERTISSEMENT : Un ou plusieurs volumes système préférés n'ont pas été proprement démontés et peuvent donc contenir des erreurs de système de fichiers. Consultez le journal des événements système pour plus de détails.\n\nUtiliser un système de fichiers endommagé peut provoquer des pertes de données ou la corruption des données. Vous devriez vérifier le(s) volume(s) système préféré(s) affecté(s) pour trouver des erreurs (cliquez-droit  [...]
+    <string lang="fr" key="FILESYS_REPAIR_CONFIRM_BACKUP">AVERTISSEMENT : La réparation d'un système de fichiers endommagé à l'aide de l'outil « chkdsk » de Microsoft pourrait causer la perte des fichiers dans les zones endommagées. Par conséquent, il est recommandé que vous sauvegardiez d'abord les fichiers stockés sur le volume de VeraCrypt vers un autre volume VeraCrypt en bonne santé.\n\nVoulez-vous réparer le système de fichiers maintenant ?</string>
+    <string lang="fr" key="MOUNTED_CONTAINER_FORCED_READ_ONLY">Le volume « %s » a été monté en lecture seule car l'accès en écriture a été refusé.\n\nAssurez-vous que les autorisations de sécurité du conteneur de fichier vous permettent d'écrire dessus (cliquez-droit sur le conteneur, puis sélectionnez "Propriétés" > "sécurité").\n\nNotez qu'en raison d'un problème de Windows, vous pouvez voir cet avertissement même après la mise en place des autorisations de sécurité appropriées. Cec [...]
+    <string lang="fr" key="MOUNTED_DEVICE_FORCED_READ_ONLY">Le volume « %s » a été monté en lecture seule parce que l'accès en écriture a été refusé.\n\nAssurez-vous qu'aucune autre application (par exemple un logiciel antivirus) n'accède à la partition/dispositif sur lequel est hébergé le volume.</string>
+    <string lang="fr" key="MOUNTED_DEVICE_FORCED_READ_ONLY_WRITE_PROTECTION">Le volume « %s » a été monté en lecture seule parce que le système d'exploitation a signalé que l'appareil hôte est protégé en écriture.\n\nVeuillez noter que certains pilotes de chipset personnalisés peuvent faire apparaitre des médias enregistrables comme faussement protégés en écriture. Ce problème n'est pas causé par VeraCrypt. Il peut être résolu par la mise à jour ou la désinstallation des pilotes personna [...]
     <string lang="fr" key="LIMIT_ENC_THREAD_POOL_NOTE">Notez que la technologie Hyper-Threading fournit plusieurs cœurs logiques pour un seul cœur physique. Quand l'Hyper-Threading est activé, le nombre sélectionné ci-dessus représente le nombre de processeurs/cœurs logiques.</string>
-    <string lang="en" key="NUMBER_OF_THREADS">%d threads</string>
-    <string lang="en" key="DISABLED_HW_AES_AFFECTS_PERFORMANCE">Note that hardware-accelerated AES is disabled, which will affect benchmark results (worse performance).\n\nTo enable hardware acceleration, select 'Settings' > 'Performance' and enable the corresponding option.</string>
-    <string lang="en" key="LIMITED_THREAD_COUNT_AFFECTS_PERFORMANCE">Note that the number of threads is currently limited, which will affect benchmark results (worse performance).\n\nTo utilize the full potential of the processor(s), select 'Settings' > 'Performance' and disable the corresponding option.</string>
-    <string lang="en" key="ASK_REMOVE_DEVICE_WRITE_PROTECTION">Do you want VeraCrypt to attempt to disable write protection of the partition/drive?</string>
-    <string lang="en" key="CONFIRM_SETTING_DEGRADES_PERFORMANCE">WARNING: This setting may degrade performance.\n\nAre you sure you want to use this setting?</string>
-    <string lang="en" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE">Warning: VeraCrypt volume auto-dismounted</string>
-    <string lang="en" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN">Before you physically remove or turn off a device containing a mounted volume, you should always dismount the volume in VeraCrypt first.\n\nUnexpected spontaneous dismount is usually caused by an intermittently failing cable, drive (enclosure), etc.</string>
+    <string lang="fr" key="NUMBER_OF_THREADS">%d unités d'exécution</string>
+    <string lang="fr" key="DISABLED_HW_AES_AFFECTS_PERFORMANCE">Notez que l'accélération matérielle AES est désactivée, ce qui affectera les résultats des benchmarks (dégradation des performances).\n\nPour activer l'accélération matérielle, sélectionnez « Paramètres » > « Performance » et activer l'option correspondante.</string>
+    <string lang="fr" key="LIMITED_THREAD_COUNT_AFFECTS_PERFORMANCE">Notez que le nombre d'unités d'exécution est actuellement limitée, ce qui affectera les résultats des benchmarks (dégradation des performances).\n\nPour exploiter pleinement le potentiel des processeurs, sélectionnez "Paramètres" > "Performance" et désactiver l'option correspondante.</string>
+    <string lang="fr" key="ASK_REMOVE_DEVICE_WRITE_PROTECTION">Voulez-vous que VeraCrypt tente de désactiver la protection en écriture du disque ou de la partition ?</string>
+    <string lang="fr" key="CONFIRM_SETTING_DEGRADES_PERFORMANCE">AVERTISSEMENT : Ce paramètre peut nuire aux performances.\n\nÊtes-vous certain de vouloir utiliser ce paramètre ?</string>
+    <string lang="fr" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE">AVERTISSEMENT: Volume VeraCrypt auto-démonté</string>
+    <string lang="fr" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN">Avant de retirer physiquement ou d'éteindre un appareil contenant un volume monté, vous devriez d'abord toujours démonter le volume dans VeraCrypt.\n\nLe démontage spontané inattendue est habituellement causé par un câble se déconnectant par intermittence, disques (rack), etc.</string>
     <string lang="fr" key="TEST">Test</string>
     <string lang="fr" key="KEYFILE">Fichier clé</string>
     <string lang="fr" key="VKEY_08">Retour arrière</string>
@@ -1302,7 +1307,7 @@
     <string lang="fr" key="GB_PER_SEC">Go/s</string>
     <string lang="fr" key="TB_PER_SEC">To/s</string>
     <string lang="fr" key="PB_PER_SEC">Po/s</string>
-    <string lang="en" key="TRIPLE_DOT_GLYPH_ELLIPSIS">…</string>
+    <string lang="fr" key="TRIPLE_DOT_GLYPH_ELLIPSIS">…</string>
   </localization>
   <!-- XML Schema -->
   <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.hu.xml b/Translations/Language.hu.xml
index 2de93fc..c55f643 100644
--- a/Translations/Language.hu.xml
+++ b/Translations/Language.hu.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="hu" name="Magyar" en-name="Hungarian" version="0.1.0" translators="Nyul Balazs" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="en" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Display password</control>
     <control lang="hu" key="IDC_TRAVEL_OPEN_EXPLORER">&Explorer ablak nyitása a csatolt kötethez</control>
     <control lang="hu" key="IDC_TRAV_CACHE_PASSWORDS">&Jelszó tárolása a driver memóriájában</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="hu" key="IDC_UNMOUNTALL">M&inden lecsatolása</control>
     <control lang="hu" key="IDC_VOLUME_PROPERTIES">&Kötet Tulajdonságok...</control>
     <control lang="hu" key="IDC_VOLUME_TOOLS">Kötet &Eszközök...</control>
     <control lang="hu" key="IDC_WIPE_CACHE">&Cache ürítés</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="hu" key="IDD_HOTKEYS_DLG">VeraCrypt - Rendszer szintű gyorsgombok</control>
     <control lang="hu" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="en" key="IDM_CREATE_RESCUE_DISK">Create Rescue Disk...</control>
     <control lang="hu" key="IDM_CREATE_VOLUME">Új kötet létrehozása...</control>
     <control lang="hu" key="IDM_DEFAULT_KEYFILES">Alap. kulcsfájlok...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="en" key="IDM_ENCRYPT_SYSTEM_DEVICE">Encrypt System Partition/Drive...</control>
     <control lang="hu" key="IDM_FAQ">Gyakran Ismételt Kérdések</control>
@@ -243,6 +245,7 @@
     <control lang="hu" key="IDM_UNMOUNT_VOLUME">Kötet leválasztása</control>
     <control lang="en" key="IDM_VERIFY_RESCUE_DISK">Verify Rescue Disk</control>
     <control lang="hu" key="IDM_VERSION_HISTORY">Verzió történet</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="hu" key="IDM_VOLUME_PROPERTIES">Kötet tulajdonságok</control>
     <control lang="hu" key="IDM_VOLUME_WIZARD">Kötet létrehozás varázsló</control>
     <control lang="hu" key="IDM_WEBSITE">VeraCrypt Honlap</control>
@@ -522,7 +525,8 @@
     <string lang="en" key="CONFIRM_RESTART">Your computer must be restarted.\n\nDo you want to restart it now?</string>
     <string lang="en" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">An error occurred when obtaining the system encryption status.</string>
     <string lang="en" key="INIT_SYS_ENC">Cannot initialize application components for system encryption.</string>
-    <string lang="en" key="INIT_RAND">Failed to initialize the random number generator!</string>
+    <string lang="en" key="INIT_RAND">Failed to initialize the random number generator!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="en" key="INIT_REGISTER">Unable to initialize the application. Failed to register the Dialog class.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="en" key="INTRO_TITLE">VeraCrypt Volume Creation Wizard</string>
@@ -535,6 +539,7 @@
     <string lang="en" key="MOUNT_BUTTON">&Mount</string>
     <string lang="en" key="NEW_VERSION_REQUIRED">A newer version of VeraCrypt is required to mount this volume.</string>
     <string lang="en" key="VOL_CREATION_WIZARD_NOT_FOUND">Error: Volume Creation Wizard not found.\n\nPlease make sure that the file 'VeraCrypt Format.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCrypt Format.exe' on your disk and run it.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="hu" key="NEXT">&Következő ></string>
     <string lang="en" key="FINALIZE">&Finish</string>
     <string lang="en" key="INSTALL">&Install</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">This algorithm is currently not supported for system encryption.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="en" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Warning: VeraCrypt could not restore the original keyboard layout. This may cause you to enter a password incorrectly.</string>
     <string lang="en" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Error: Cannot set the keyboard layout for VeraCrypt to the standard US keyboard layout.\n\nNote that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available. Therefore, the password must always be typed using the standard US keyboard layout.</string>
diff --git a/Translations/Language.id.xml b/Translations/Language.id.xml
index 8ed82c0..baf901c 100644
--- a/Translations/Language.id.xml
+++ b/Translations/Language.id.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="id" name="Bahasa Indonesia" en-name="Indonesian" version="0.1.0" translators="Tajuddin N. F." />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="id" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Tampilkan password</control>
     <control lang="id" key="IDC_TRAVEL_OPEN_EXPLORER">Buka jendela &Explorer untuk volume yang tersambung</control>
     <control lang="id" key="IDC_TRAV_CACHE_PASSWORDS">&Simpan password pada driver memory</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="id" key="IDC_UNMOUNTALL">Putu&skan semua</control>
     <control lang="id" key="IDC_VOLUME_PROPERTIES">Profil &Volume...</control>
     <control lang="id" key="IDC_VOLUME_TOOLS">Penga&turan volume...</control>
     <control lang="id" key="IDC_WIPE_CACHE">Bersih&kan Simpanan</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="id" key="IDD_HOTKEYS_DLG">Kunci pintas Sistem - VeraCrypt</control>
     <control lang="id" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="en" key="IDM_CREATE_RESCUE_DISK">Create Rescue Disk...</control>
     <control lang="id" key="IDM_CREATE_VOLUME">Buat Volume Baru...</control>
     <control lang="id" key="IDM_DEFAULT_KEYFILES">File Kunci Dasar...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="en" key="IDM_ENCRYPT_SYSTEM_DEVICE">Encrypt System Partition/Drive...</control>
     <control lang="id" key="IDM_FAQ">Pertanyaan yang sering diajukan</control>
@@ -243,6 +245,7 @@
     <control lang="id" key="IDM_UNMOUNT_VOLUME">Putuskan Volume</control>
     <control lang="en" key="IDM_VERIFY_RESCUE_DISK">Verify Rescue Disk</control>
     <control lang="id" key="IDM_VERSION_HISTORY">Sejarah...</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="id" key="IDM_VOLUME_PROPERTIES">Profil Volume</control>
     <control lang="id" key="IDM_VOLUME_WIZARD">Panduan pembuatan Volume</control>
     <control lang="id" key="IDM_WEBSITE">Halaman Web VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="en" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">An error occurred when obtaining the system encryption status.</string>
     <string lang="en" key="INIT_SYS_ENC">Cannot initialize application components for system encryption.</string>
     <string lang="en" key="INIT_RAND">Failed to initialize the random number generator!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="en" key="INIT_REGISTER">Unable to initialize the application. Failed to register the Dialog class.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="en" key="INTRO_TITLE">VeraCrypt Volume Creation Wizard</string>
@@ -535,6 +539,7 @@
     <string lang="id" key="MOUNT_BUTTON">Sa&mbung</string>
     <string lang="en" key="NEW_VERSION_REQUIRED">A newer version of VeraCrypt is required to mount this volume.</string>
     <string lang="en" key="VOL_CREATION_WIZARD_NOT_FOUND">Error: Volume Creation Wizard not found.\n\nPlease make sure that the file 'VeraCrypt Format.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCrypt Format.exe' on your disk and run it.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="en" key="NEXT">&Next ></string>
     <string lang="en" key="FINALIZE">&Finish</string>
     <string lang="en" key="INSTALL">&Install</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">This algorithm is currently not supported for system encryption.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="en" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Warning: VeraCrypt could not restore the original keyboard layout. This may cause you to enter a password incorrectly.</string>
     <string lang="en" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Error: Cannot set the keyboard layout for VeraCrypt to the standard US keyboard layout.\n\nNote that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available. Therefore, the password must always be typed using the standard US keyboard layout.</string>
diff --git a/Translations/Language.it.xml b/Translations/Language.it.xml
index 4d9a6fe..80a26e0 100644
--- a/Translations/Language.it.xml
+++ b/Translations/Language.it.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="it" name="Italiano" en-name="Italian" version="1.0.1" translators="Maurizio Ballo, Consiglio Gaetano" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="it" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Mostra password</control>
     <control lang="it" key="IDC_TRAVEL_OPEN_EXPLORER">Apri la finestra di Esplora risorse per il volume montato</control>
     <control lang="it" key="IDC_TRAV_CACHE_PASSWORDS">Mantieni la password nella cache</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="it" key="IDC_UNMOUNTALL">Smonta tutti</control>
     <control lang="it" key="IDC_VOLUME_PROPERTIES">Proprietà volume...</control>
     <control lang="it" key="IDC_VOLUME_TOOLS">Strumenti volume...</control>
     <control lang="it" key="IDC_WIPE_CACHE">Azzera la cache</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="it" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Volumi preferiti</control>
     <control lang="it" key="IDD_HOTKEYS_DLG">VeraCrypt - Tasti di scelta rapida (hotkey)</control>
     <control lang="it" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="it" key="IDM_CREATE_RESCUE_DISK">Crea un disco di ripristino...</control>
     <control lang="it" key="IDM_CREATE_VOLUME">Crea un nuovo volume...</control>
     <control lang="it" key="IDM_DEFAULT_KEYFILES">File chiave predefiniti...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="it" key="IDM_DONATE">Donazione...</control>
     <control lang="it" key="IDM_ENCRYPT_SYSTEM_DEVICE">Codifica la partizione o disco di sistema...</control>
     <control lang="it" key="IDM_FAQ">Domande frequenti</control>
@@ -243,6 +245,7 @@
     <control lang="it" key="IDM_UNMOUNT_VOLUME">Smonta il volume</control>
     <control lang="it" key="IDM_VERIFY_RESCUE_DISK">Verifica disco di ripristino</control>
     <control lang="it" key="IDM_VERSION_HISTORY">Cronologia delle versioni</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="it" key="IDM_VOLUME_PROPERTIES">Proprietà del volume...</control>
     <control lang="it" key="IDM_VOLUME_WIZARD">Creazione guidata volume...</control>
     <control lang="it" key="IDM_WEBSITE">Sito web di VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="it" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Si è verificato un errore nel dare lo stato di codifica del sistema.</string>
     <string lang="it" key="INIT_SYS_ENC">Impossibile inizializzare i componenti dell’applicazione per la codifica del sistema.</string>
     <string lang="it" key="INIT_RAND">Inizializzazione del generatore di numeri casuali fallita!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="it" key="INIT_REGISTER">Impossibile inizializzare l'applicazione. Registrazione della classe Finestra di dialogo fallita.</string>
     <string lang="it" key="INIT_RICHEDIT">ERRORE: Fallito nel caricare il Rich Edit della libreria di sistema.</string>
     <string lang="it" key="INTRO_TITLE">Creazione guidata volume VeraCrypt</string>
@@ -535,6 +539,7 @@
     <string lang="it" key="MOUNT_BUTTON">Monta</string>
     <string lang="it" key="NEW_VERSION_REQUIRED">Per montare questo volume è richiesta una versione più recente di VeraCrypt.</string>
     <string lang="it" key="VOL_CREATION_WIZARD_NOT_FOUND">ERRORE: procedura guidata per la creazione del volume non trovata.\n\nAssicurarsi che il file 'VeraCrypt Format.exe' sia nella cartella dalla quale 'VeraCrypt.exe' è stato eseguito. Altrimenti reinstallare VeraCrypt o individuare 'VeraCrypt Format.exe' sul disco ed eseguirlo.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="it" key="NEXT">Avanti ></string>
     <string lang="it" key="FINALIZE">&Fine</string>
     <string lang="it" key="INSTALL">&Installa</string>
@@ -1034,8 +1039,8 @@
     <string lang="it" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nL’extra boot della partizione può essere rimosso prima di installare Windows. Per fare questo, seguite questa procedura:\n\n1) Avviate il vostro disco di installazione di Windows.\n\n2)Nello schermo di installazione di  Windows fate clic su “Installa”> “Personalizzata (avanzata)”.\n\n3) Fate clic su “Opzioni unità”.\n\n4) Selezionare la partizione di sistema ed eliminatela facendo clic su “Elimina”e quindi “OK”.\n [...]
     <string lang="it" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">AVVERTENZA: C’è uno spazio non allocato tra la partizione di sistema e la prima partizione dietro di essa. Dopo aver creato il sistema operativo nascosto, non dovete creare nessuna nuova partizione in questo spazio non allocato. Diversamente sarà impossibile avviare il sistema operativo nascosto (finché voi eliminate tali nuove partizioni create).</string>
     <string lang="it" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Questo algoritmo non è attualmente supportato per la codifica del sistema.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="it" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">I file chiave sono attualmente non supportate dalla codifica di sistema.</string>
     <string lang="it" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">AVVERTENZA: VeraCrypt non può ripristinare la configurazione originale della tastiera. Questo può causare la digitazione errata della password.</string>
     <string lang="it" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">ERRORE: Impossibile impostare la configurazione della tastiera per VeraCrypt nel layout standard tastiera USA.\n\nNotare che la password necessita di essere digitata in ambiente di pre-boot (prima dell’avvio di Windows) dove la configurazione delle tastiere Windows non americane non sono disponibili. Pertanto, la password deve essere sempre digitata usando il layout tastiera standard USA.</string>
diff --git a/Translations/Language.ja.xml b/Translations/Language.ja.xml
index a82f569..03d36c8 100644
--- a/Translations/Language.ja.xml
+++ b/Translations/Language.ja.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="ja" name="日本語" en-name="Japanese" version="1.0.0" translators="OGOSHI Masayuki" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="ja" key="IDC_SHOW_PASSWORD_CHPWD_ORI">パスワードを表示</control>
     <control lang="ja" key="IDC_TRAVEL_OPEN_EXPLORER">マウントされたボリュームのウィンドウを開く(&E)</control>
     <control lang="ja" key="IDC_TRAV_CACHE_PASSWORDS">パスワードをドライバのメモリに記憶(&C)</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="ja" key="IDC_UNMOUNTALL">全てアンマウント(&S)</control>
     <control lang="ja" key="IDC_VOLUME_PROPERTIES">ボリュームのプロパティ(&V)...</control>
     <control lang="ja" key="IDC_VOLUME_TOOLS">ボリュームツール(&T)...</control>
     <control lang="ja" key="IDC_WIPE_CACHE">記憶済パスワードの消去(&W)</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="ja" key="IDD_FAVORITE_VOLUMES">VeraCrypt - お気に入りボリューム</control>
     <control lang="ja" key="IDD_HOTKEYS_DLG">VeraCrypt - システム全体のホットキーの設定</control>
     <control lang="ja" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="ja" key="IDM_CREATE_RESCUE_DISK">レスキューディスク作成...</control>
     <control lang="ja" key="IDM_CREATE_VOLUME">新規ボリュームの作成...</control>
     <control lang="ja" key="IDM_DEFAULT_KEYFILES">デフォルトキーファイル...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="ja" key="IDM_DONATE">寄付する...</control>
     <control lang="ja" key="IDM_ENCRYPT_SYSTEM_DEVICE">システムパーティション/ドライブの暗号化...</control>
     <control lang="ja" key="IDM_FAQ">よくある質問と答え</control>
@@ -243,6 +245,7 @@
     <control lang="ja" key="IDM_UNMOUNT_VOLUME">ボリュームをアンマウント</control>
     <control lang="ja" key="IDM_VERIFY_RESCUE_DISK">レスキューディスクのベリファイ</control>
     <control lang="ja" key="IDM_VERSION_HISTORY">バージョン履歴</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="ja" key="IDM_VOLUME_PROPERTIES">ボリュームのプロパティ</control>
     <control lang="ja" key="IDM_VOLUME_WIZARD">ボリューム作成ウィザード</control>
     <control lang="ja" key="IDM_WEBSITE">VeraCryptウェブサイト</control>
@@ -523,6 +526,7 @@
     <string lang="ja" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">システムの暗号ステータスの取得中にエラーが見つかりました。</string>
     <string lang="ja" key="INIT_SYS_ENC">システムを暗号化するアプリケーションコンポーネントを初期化できませんでした。</string>
     <string lang="ja" key="INIT_RAND">乱数生成機構の初期化に失敗しました!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="ja" key="INIT_REGISTER">アプリケーションを初期化できません。ダイアログクラスの登録に失敗しました。</string>
     <string lang="ja" key="INIT_RICHEDIT">エラー:リッチエディットシステムライブラリの読込に失敗しました。</string>
     <string lang="ja" key="INTRO_TITLE">VeraCryptボリューム作成ウィザード</string>
@@ -535,6 +539,7 @@
     <string lang="ja" key="MOUNT_BUTTON">マウント(&M)</string>
     <string lang="ja" key="NEW_VERSION_REQUIRED">このボリュームをマウントするには、新しいバージョンのVeraCryptが必要です。</string>
     <string lang="ja" key="VOL_CREATION_WIZARD_NOT_FOUND">エラー:ボリューム作成ウィザードが見つかりません。\n\n'VeraCrypt.exe' が起動されたフォルダに 'VeraCrypt Format.exe' があるか確認してください。 もし存在しなければ、VeraCryptを再インストールするか、ディスク上の 'VeraCrypt Fromat.exe' を探し出して実行してください。</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="ja" key="NEXT">次へ(&N)></string>
     <string lang="ja" key="FINALIZE">終了(&F)</string>
     <string lang="ja" key="INSTALL">インストール(&I)</string>
@@ -1034,8 +1039,8 @@
     <string lang="ja" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nWindowsをインストールする前に追加のブートパーティションを削除できます。そのためには次の手順に従ってください:\n\n1) Windowsインストールディスクで起動します。\n\n2) Windowsインストール画面で「今すぐインストール」→「カスタム(詳細)」とクリックします。\n\n3) 「ドライブオプション」をクリックします。\n\n4) メインのシステムパーティションを選択し、「消去」→「OK」とクリックして消去します。\n\n5) 「System Reserved」パーティションを選択し、「拡張」をクリックしてOSをインストール可能なサイズを指定します。6) 「適用」→「OK」をクリックします。\n\n7) 「System Reserved」パーティションにWindowsをインストールします。\n\n\n攻撃者が追加のブートパーティションを削除した理由を尋ねてくるかもしれません。そのときは、あなたは暗号化されてい [...]
     <string lang="ja" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">警告:システムパーティションとその次のパーティションの間に未割り当ての領域が存在しています。隠しOSを作成した後は、この未割り当ての領域に新たにパーティションを作成してはいけません。さもなければ(新たに作成したパーティションを削除するまで)隠しOSが起動できなくなります。</string>
     <string lang="ja" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">このアルゴリズムはシステムの暗号化には現在対応していません。</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="ja" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">現在、システムの暗号化でのキーファイル使用には対応していません。</string>
     <string lang="ja" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">警告:VeraCryptは元のキーボードレイアウトを復元できませんでした。そのためパスワードを正確に入力できないおそれがあります。</string>
     <string lang="ja" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">エラー:キーボードのレイアウトを標準USキーボードとして設定できません。\n\nシステム起動前に必要なパスワードがUS Windowsレイアウト以外のキーボードで入力されても無効となります。したがってパスワードは常に標準USレイアウトのキーボードで入力される必要があります。</string>
diff --git a/Translations/Language.ka.xml b/Translations/Language.ka.xml
index c9e487c..f073ec3 100644
--- a/Translations/Language.ka.xml
+++ b/Translations/Language.ka.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="ka" name="ქართული" en-name="Georgian" version="0.1.0" translators="Kakha Lomiashvili" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="ka" key="IDC_SHOW_PASSWORD_CHPWD_ORI">პაროლის ჩვენება</control>
     <control lang="ka" key="IDC_TRAVEL_OPEN_EXPLORER">მიერთებული ტომის Explorer-ის ფანჯარაში გახსნა</control>
     <control lang="ka" key="IDC_TRAV_CACHE_PASSWORDS">პაროლის ქეშირება დრაივერის მეხსიერებაში</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="ka" key="IDC_UNMOUNTALL">ყველას გამოერთება</control>
     <control lang="ka" key="IDC_VOLUME_PROPERTIES">ტომის პარამეტრები</control>
     <control lang="ka" key="IDC_VOLUME_TOOLS">ოპერაციები</control>
     <control lang="ka" key="IDC_WIPE_CACHE">ქეშის წაშლა</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="ka" key="IDD_HOTKEYS_DLG">VeraCrypt - საერთოსისტემური ცხელი კლავიშები</control>
     <control lang="ka" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="ka" key="IDM_CREATE_RESCUE_DISK">აღმდგენი დისკის შექმნა</control>
     <control lang="ka" key="IDM_CREATE_VOLUME">ახალი ტომის შექმნა</control>
     <control lang="ka" key="IDM_DEFAULT_KEYFILES">გასაღების ფაილები (საწყისი)</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="ka" key="IDM_ENCRYPT_SYSTEM_DEVICE">სისტემური განაყოფის/დისკის შიფრაცია</control>
     <control lang="ka" key="IDM_FAQ">ხშირად დასმადი კითხვები</control>
@@ -243,6 +245,7 @@
     <control lang="ka" key="IDM_UNMOUNT_VOLUME">ტომის გამოერთება</control>
     <control lang="ka" key="IDM_VERIFY_RESCUE_DISK">აღმდგენი დისკის შემოწმება</control>
     <control lang="ka" key="IDM_VERSION_HISTORY">ვერსიების ისტორია</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="ka" key="IDM_VOLUME_PROPERTIES">ტომის მახასიათებლები</control>
     <control lang="ka" key="IDM_VOLUME_WIZARD">ტომების შექმნის ოსტატი</control>
     <control lang="ka" key="IDM_WEBSITE">www.VeraCrypt.org</control>
@@ -523,6 +526,7 @@
     <string lang="ka" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">სისტემის შიფრაციის სტატუსის მიღების დროს მოხდა შეცდომა.</string>
     <string lang="ka" key="INIT_SYS_ENC">ვერ ხერხდება სისტემის შიფრაციისათვის პროგრამის კომპონენტების ინიციალიზაცია.</string>
     <string lang="ka" key="INIT_RAND">შემთხვევითი რიცხვების გენერატორის ინიციალიზაციის შეცდომა.</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="ka" key="INIT_REGISTER">პროგრამის ინიციალიზაციის შეცდომა. Dialog კლასის რეგისტრირება შეუძლებელია.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="ka" key="INTRO_TITLE">VeraCrypt-ის ტომების შექმნის ოსტატი</string>
@@ -535,6 +539,7 @@
     <string lang="ka" key="MOUNT_BUTTON">მიერთება</string>
     <string lang="ka" key="NEW_VERSION_REQUIRED">ამ ტომის მიერთებისათვის საჭიროა VeraCrypt-ის უფრო ახალი ვერსია.</string>
     <string lang="ka" key="VOL_CREATION_WIZARD_NOT_FOUND">შეცდომა! ტომების შექმნის ოსტატი ვერ მოიძებნა.\n\nშეამოწმეთ, "VeraCrypt.exe"-ს ფოლდერში არის თუ არა ფაილი "VeraCrypt Format.exe". თუ არ არის, ხელახლა დააინსტალირეთ VeraCrypt ან მოძებნეთ დისკებზე  ფაილი "VeraCrypt Format.exe" და გაუშვით.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="ka" key="NEXT">შემდეგ</string>
     <string lang="ka" key="FINALIZE">მზადაა</string>
     <string lang="ka" key="INSTALL">ინსტალაცია</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="ka" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">სისტემის შიფრაციისათვის ეს ალგორითმი ჯერჯერობით არათავსებადია.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="ka" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">გაფრთხილება: VeraCrypt ვერ აღადგენს კლავიატურის ორიგინალ განლაგებას. ამან შესაძლოა პაროლის არასწორი შეტანა გამოიწვიოს.</string>
     <string lang="ka" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">შეცდომა: VeraCrypt-ისთვის კლავიატურის სტანდარტული US  განლაგების დაყენება ვერ ხერხდება.\n\nპაროლი შეტანილ უნდა იქნას ჩატვირთვის პროცესში (Windows-ის სტარტამდე), როდესაც არა-US განლაგების ჩართვა შეუძლებელია. ამიტომ პაროლი აკრეფილნ უნდა იქნას კლავიატურის სტანდარტული US განლაგებით.</string>
diff --git a/Translations/Language.ko.xml b/Translations/Language.ko.xml
index 891eb41..ebbd6ed 100644
--- a/Translations/Language.ko.xml
+++ b/Translations/Language.ko.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="ko" name="한국어" en-name="Korean" version="0.1.0" translators="Kim Young" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="ko" key="IDC_SHOW_PASSWORD_CHPWD_ORI">비밀번호 표시</control>
     <control lang="ko" key="IDC_TRAVEL_OPEN_EXPLORER">삽입된 볼륨을 위한 탐색기 창 열기</control>
     <control lang="ko" key="IDC_TRAV_CACHE_PASSWORDS">드라이버 메모리에 비밀번호 보관(&C)</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="ko" key="IDC_UNMOUNTALL">모두 꺼내기(&S)</control>
     <control lang="ko" key="IDC_VOLUME_PROPERTIES">볼륨 속성(&V)...</control>
     <control lang="ko" key="IDC_VOLUME_TOOLS">볼륨 도구(&T)...</control>
     <control lang="ko" key="IDC_WIPE_CACHE">캐시 지우기(&W)</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="ko" key="IDD_HOTKEYS_DLG">VeraCrypt - 시스템 일반 단축키</control>
     <control lang="ko" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="ko" key="IDM_CREATE_RESCUE_DISK">응급복구 디스크 만들기...</control>
     <control lang="ko" key="IDM_CREATE_VOLUME">새 볼륨 만들기...</control>
     <control lang="ko" key="IDM_DEFAULT_KEYFILES">기본 키파일...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="ko" key="IDM_ENCRYPT_SYSTEM_DEVICE">시스템 파티션/드라이브 암호화...</control>
     <control lang="ko" key="IDM_FAQ">자주 묻는 질문</control>
@@ -243,6 +245,7 @@
     <control lang="ko" key="IDM_UNMOUNT_VOLUME">볼륨 꺼내기</control>
     <control lang="ko" key="IDM_VERIFY_RESCUE_DISK">응급복구 디스크 검증</control>
     <control lang="ko" key="IDM_VERSION_HISTORY">버전 히스토리</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="ko" key="IDM_VOLUME_PROPERTIES">볼륨 속성</control>
     <control lang="ko" key="IDM_VOLUME_WIZARD">볼륨 만들기 마법사</control>
     <control lang="ko" key="IDM_WEBSITE">VeraCrypt 웹사이트</control>
@@ -523,6 +526,7 @@
     <string lang="ko" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">시스템 암호 상태를 얻는 동안 오류가 발생했습니다.</string>
     <string lang="ko" key="INIT_SYS_ENC">시스템 암호화를 위한 프로그램 구성요소를 초기화하지 못했습니다.</string>
     <string lang="ko" key="INIT_RAND">무작위 숫자 생성기를 초기화하는데 실패했습니다!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="ko" key="INIT_REGISTER">프로그램을 초기화할 수 없습니다. 다이얼로그 클래스 등록에 실패했습니다.</string>
     <string lang="ko" key="INIT_RICHEDIT">오류: Rich Edit 시스템 라이브러리를 로드하는데 실패했습니다.</string>
     <string lang="ko" key="INTRO_TITLE">VeraCrypt 볼륨 만들기 마법사</string>
@@ -535,6 +539,7 @@
     <string lang="ko" key="MOUNT_BUTTON">삽입(&M)</string>
     <string lang="ko" key="NEW_VERSION_REQUIRED">이 볼륨을 삽입하려면 최신 버전의 VeraCrypt가 필요합니다.</string>
     <string lang="ko" key="VOL_CREATION_WIZARD_NOT_FOUND">오류: 볼륨 만들기 마법사를 찾을 수 없습니다.\n\n“VeraCrypt.exe”가 실행된 폴더에서 “VeraCrypt Format.exe” 파일을 찾아보시기 바랍니다. 만약 없으면 VeraCrypt를 다시 설치하거나, 디스크에서 “VeraCrypt Format.exe” 파일의 위치를 지정한 실행하세요.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="ko" key="NEXT">다음(&N) ></string>
     <string lang="ko" key="FINALIZE">마침(&F)</string>
     <string lang="ko" key="INSTALL">설치(&I)</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="ko" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">주의: 시스템 파티션과 그 뒤에 있는 첫번쩨 파티션 사이에 할당되지 않은 공간이 있습니다. 숨긴 운영체제를 생성한 후에, 이러한 미할당 공간에 새로운 파티션을 만들어선 안됩니다. 그렇지 않으면 (새롭게 만들어진 파티션을 제거하기 전까지는) 숨긴 운영체제로 부팅을 할 수 없게 됩니다.</string>
     <string lang="ko" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">이 알고리듬은 현재 시스템 암호화에 지원되지 않습니다.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="ko" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">키파일이 현재 시스템 암호화에서 지원되지 않습니다.</string>
     <string lang="ko" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">주의: VeraCrypt가 원래의 키보드 레이아웃을 복구할 수 없습니다. 이 경우 비밀번호를 올바르게 입력할 수 없을지도 모릅니다.</string>
     <string lang="ko" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">오류: VeraCrypt 키보드 레이아웃을 표준 US 키보드 레이아웃에 설정할 수 없습니다.\n\n(윈도우 시작 전에) US가 아닌 윈도우 키보드 레이아웃을 사용할 수 없는 부팅-전 환경에서 비밀번호를 입력할 필요가 있다는 것을 참고하세요. 그래서 표준 US 키보드 레이아웃을 사용해서 항상 비밀번호를 입력해야 합니다.</string>
diff --git a/Translations/Language.lv.xml b/Translations/Language.lv.xml
index 42e0651..89bc11b 100644
--- a/Translations/Language.lv.xml
+++ b/Translations/Language.lv.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="lv" name="Latviešu" en-name="Latvian" version="0.1.0" translators="Edmunds Melkers" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="en" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Display password</control>
     <control lang="lv" key="IDC_TRAVEL_OPEN_EXPLORER">Atvērt uzstādīto apgabalu Explorer logā</control>
     <control lang="lv" key="IDC_TRAV_CACHE_PASSWORDS">Ierakstīt paroles dziņa kešatmiņā</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="lv" key="IDC_UNMOUNTALL">&Demontēt visus</control>
     <control lang="lv" key="IDC_VOLUME_PROPERTIES">&Apgabala īpašības...</control>
     <control lang="lv" key="IDC_VOLUME_TOOLS">Apgabala rīki...</control>
     <control lang="lv" key="IDC_WIPE_CACHE">Izdzēst kešatmiņu</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="lv" key="IDD_HOTKEYS_DLG">VeraCrypt - sistēmas līmeņa karstie taustiņi</control>
     <control lang="lv" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="en" key="IDM_CREATE_RESCUE_DISK">Create Rescue Disk...</control>
     <control lang="lv" key="IDM_CREATE_VOLUME">Izveidot jaunu apgabalu...</control>
     <control lang="lv" key="IDM_DEFAULT_KEYFILES">Noklusētās atslēgdatnes...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="en" key="IDM_ENCRYPT_SYSTEM_DEVICE">Encrypt System Partition/Drive...</control>
     <control lang="lv" key="IDM_FAQ">Bieži uzdotie jautājumi</control>
@@ -243,6 +245,7 @@
     <control lang="lv" key="IDM_UNMOUNT_VOLUME">Demontēt apgabalu</control>
     <control lang="en" key="IDM_VERIFY_RESCUE_DISK">Verify Rescue Disk</control>
     <control lang="lv" key="IDM_VERSION_HISTORY">Versijas vēsture</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="lv" key="IDM_VOLUME_PROPERTIES">Apgabala īpšības</control>
     <control lang="lv" key="IDM_VOLUME_WIZARD">Apgabala izveidošanas vednis</control>
     <control lang="lv" key="IDM_WEBSITE">VeraCrypt mājaslapa</control>
@@ -522,7 +525,8 @@
     <string lang="en" key="CONFIRM_RESTART">Your computer must be restarted.\n\nDo you want to restart it now?</string>
     <string lang="en" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">An error occurred when obtaining the system encryption status.</string>
     <string lang="en" key="INIT_SYS_ENC">Cannot initialize application components for system encryption.</string>
-    <string lang="en" key="INIT_RAND">Failed to initialize the random number generator!</string>
+    <string lang="en" key="INIT_RAND">Failed to initialize the random number generator!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="en" key="INIT_REGISTER">Unable to initialize the application. Failed to register the Dialog class.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="lv" key="INTRO_TITLE">VeraCrypt apgabala izveidošanas vednis</string>
@@ -535,6 +539,7 @@
     <string lang="lv" key="MOUNT_BUTTON">Uzstādīt izvēlēto</string>
     <string lang="en" key="NEW_VERSION_REQUIRED">A newer version of VeraCrypt is required to mount this volume.</string>
     <string lang="en" key="VOL_CREATION_WIZARD_NOT_FOUND">Error: Volume Creation Wizard not found.\n\nPlease make sure that the file 'VeraCrypt Format.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCrypt Format.exe' on your disk and run it.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="lv" key="NEXT">Nākamais ></string>
     <string lang="en" key="FINALIZE">&Finish</string>
     <string lang="en" key="INSTALL">&Install</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">This algorithm is currently not supported for system encryption.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="en" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Warning: VeraCrypt could not restore the original keyboard layout. This may cause you to enter a password incorrectly.</string>
     <string lang="en" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Error: Cannot set the keyboard layout for VeraCrypt to the standard US keyboard layout.\n\nNote that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available. Therefore, the password must always be typed using the standard US keyboard layout.</string>
diff --git a/Translations/Language.my.xml b/Translations/Language.my.xml
index 6283d4f..80f4a6c 100644
--- a/Translations/Language.my.xml
+++ b/Translations/Language.my.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="my" name="မြန်မာ" en-name="Burmese" version="1.0.0" translators="Zaw Myo Htet" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="my" key="IDC_SHOW_PASSWORD_CHPWD_ORI">စကားဝှက် ပြရန်</control>
     <control lang="my" key="IDC_TRAVEL_OPEN_EXPLORER">အစပျိုးထားသော volume အတွက် Explorer ၀င်းဒိုး ဖွင့်ရန်</control>
     <control lang="my" key="IDC_TRAV_CACHE_PASSWORDS">ဒရိုင်ဘာ မှတ်ဉာဏ်ထဲရှိ ယာယီ စကားဝှက်</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="my" key="IDC_UNMOUNTALL">အားလုံးကို အဆုံးသတ်ရန်</control>
     <control lang="my" key="IDC_VOLUME_PROPERTIES">Volume  ဂုဏ်အင်္ဂါရပ်များ...</control>
     <control lang="my" key="IDC_VOLUME_TOOLS">Volume ကိရိယာများ...</control>
     <control lang="my" key="IDC_WIPE_CACHE">ယာယီဖိုင်များကို ရှင်းလင်းရန်</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="my" key="IDD_FAVORITE_VOLUMES">VeraCrypt - စိတ်ကြိုက် Volumes များ</control>
     <control lang="my" key="IDD_HOTKEYS_DLG">VeraCrypt - စက်သုံး အထူး ကီးများ</control>
     <control lang="my" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="my" key="IDM_CREATE_RESCUE_DISK">ကယ်ဆယ်ရေး Disk ဖန်တီးရန်...</control>
     <control lang="my" key="IDM_CREATE_VOLUME">Volume အသစ် ဖန်တီးရန်...</control>
     <control lang="my" key="IDM_DEFAULT_KEYFILES">မူလ ကီးဖိုင်များ...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="my" key="IDM_DONATE">ယခု လှူဒါန်းရန်...</control>
     <control lang="my" key="IDM_ENCRYPT_SYSTEM_DEVICE">ကွန်ပျူတာ အခန်းကန့်/Drive ကို စာဝှက်ရန်...</control>
     <control lang="my" key="IDM_FAQ">မေးလေ့ရှိသော မေခွန်းများ</control>
@@ -243,6 +245,7 @@
     <control lang="my" key="IDM_UNMOUNT_VOLUME">Volume အဆုံးသတ်ရန်</control>
     <control lang="my" key="IDM_VERIFY_RESCUE_DISK">ကယ်ဆယ်ရေး Disk စစ်ဆေးရန်</control>
     <control lang="my" key="IDM_VERSION_HISTORY">ဗားရှင်း မှတ်တမ်း</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="my" key="IDM_VOLUME_PROPERTIES">Volume ဂုဏ်အင်္ဂါရပ်များ</control>
     <control lang="my" key="IDM_VOLUME_WIZARD">Volume ဖန်တီးမှု အညွှန်း</control>
     <control lang="my" key="IDM_WEBSITE">VeraCrypt ကွန်ရက် စာမျက်နှာ</control>
@@ -524,6 +527,7 @@
     <string lang="my" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">ကွန်ပျူတာစနစ်၏ စာဝှက်ခြင်း အနေအထားကို ရယူနေစဉ် ချို့ယွင်းချက် တစ်ခု ဖြစ်ပေါ်နေသည်။</string>
     <string lang="my" key="INIT_SYS_ENC">ကွန်ပျူတာစနစ် စာဝှက်ရန်အတွက် အပ္ပလီကေးရှင်း အစိတ်အပိုင်းများကို အစပြု၍ မရပါ။</string>
     <string lang="my" key="INIT_RAND">ကျပန်း နံပါတ် ထုတ်စနစ်ကို အစပြု၍ မရပါ။</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="my" key="INIT_REGISTER">အပ္ပလီကေးရှင်းကို အစပြု၍ မရပါ။ Dialog class ကို မှတ်ပုံတင်ရန် မအောင်မြင်ပါ။</string>
     <string lang="my" key="INIT_RICHEDIT">ချို့ယွင်းချက် - Rich Edit စနစ် လိုင်ဘရာရီကို ဖွင့်မရပါ။</string>
     <string lang="my" key="INTRO_TITLE">VeraCrypt Volume ဖန်တီးမှု အညွှန်း</string>
@@ -536,6 +540,7 @@
     <string lang="my" key="MOUNT_BUTTON">&အစပျိုးပါ</string>
     <string lang="my" key="NEW_VERSION_REQUIRED">ဤ volume ကို အစပျိုးရန် VeraCrypt ဗားရှင်း အသစ် လိုအပ်သည်။</string>
     <string lang="my" key="VOL_CREATION_WIZARD_NOT_FOUND">ချို့ယွင်းချက် - Volume ဖန်တီးခြင်း အညွှန်းကို ရှာမတွေ့ပါ။\n\nဖိုင်တွဲထဲ၌ 'VeraCrypt Format.exe' ရှိရမည် ဖြစ်ပြီး၊ ၄င်းဖိုင်တွဲမှာ 'VeraCrypt.exe' ကို ဖွင့်ရမည် ဖြစ်သည်။ အကယ်၍ မရှိခဲ့လျှင် VeraCrypt ကို ဖက်ထဲ ထပ်မထည့်သွင်းပါ၊ (သို့) သင့် disk တွင် 'VeraCrypt Format.exe' ကို ရှာပြီး ၄င်းကို ဖွင့်ပါ။</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="my" key="NEXT">&ရှေ့သို့ ></string>
     <string lang="my" key="FINALIZE">&ပြီးသွားပြီ</string>
     <string lang="my" key="INSTALL">စက်ထဲ ထည့်သွင်းရန်</string>
@@ -1036,8 +1041,8 @@
     <string lang="my" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nအပို boot အခန်းကန့်ကို Windows မထည့်သွင်းမီ ဖယ်ရှားနိုင်သည်။ ထိုသို့ ပြုလုပ်ရန်၊ အောက်ပါ အဆင့်များကို လိုက်နာပါ -\n\n၁) Windows အခွေကို ဖွင့်ပါ။\n\n၂) Windows ထည့်သွင်းစနစ် မျက်နှာပြင်၌၊ 'Install now' > 'Custom (advanced)' ကို နှိပ်ပါ။\n\n၃) 'Drive Options' ကို နှိပ်ပါ။\n\n၄) ပင်မ ကွန်ပျူတာစနစ် အခန်းကန့်ကို ရွေးပါ။ ၄င်းကို 'Delete' နှိပ်ပြီး 'OK' နှိပ်ပါ။\n\n၅)  'System Reserved' အခန်းကန့်ကို ရွေးပြီး၊ 'Extend' ကိ [...]
     <string lang="my" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">သတိပေးချက် - ကွန်ပျူတာစနစ် အခန်းကန့်နှင့် ပထမ အခန်းကန့်တို့ အကြား၌ မသတ်မှတ်ရသေးသော နေရာရှိသည်။ လျှို့ဝှက် OS စနစ်ကို ဖန်တီးပြီးသောအခါ၊ ယင်း မသတ်မှတ်ရသေးသော နေရာ၌ အခန်းကန့်အသစ် မဖန်တီးရ။ သို့မဟုတ်ပါက၊ (ယင်းကဲ့သို့ အသစ် ဖန်တီးလိုက်သော အခန်းကန့်များကို မဖျက်မချင်း) လျှို့ဝှက် OS စနစ်ကို ဖွင့်၍ မရ ဖြစ်သွားနိုင်သည်။</string>
     <string lang="my" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">ဤအယ်လဂိုရီသမ်၌ လောလောဆယ် ကွန်ပျူတာစနစ် စာဝှက်ခြင်းအတွက် ထောက်ပံ့မပေးပါ။</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="my" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">ကီးဖိုင်များသည် လောလောဆယ် ကွန်ပျူတာစနစ် စာဝှက်ခြင်းအတွက် ထောက်ပံ့မပေးပါ။​</string>
     <string lang="my" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">သတိပေးချက် - VeraCrypt သည် မူရင်း ​ကီးဘုတ် လေးအောက်ကို နဂိုအတိုင်း ပြန်မထားနိုင်ပါ။ ဤအချက်ကြောင့် စကားဝှက်ကို မှားယွင်းစွာ ရေးထည့်မိနိုင်သည်။</string>
     <string lang="my" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">ချို့ယွင်းချက် - VeraCrypt အတွက် ကီးဘုတ် လေးအောက်ကို standard US ကီးဘုတ် လေးအောက် အဖြစ် သတ်မှတ်၍ မရပါ။\n\n US စနစ် မဟုတ်သော ဝင်းဒိုး ကီးဘုတ် လေးအောက် မရနိုင်သည့် နေရာ၌ စက်မတက်ခင် အခြေအနေ (ကွန်ပျူတာ မတက်မီ) တွင် စကားဝှက်ကို ရေးထည့်ရန် လိုအပ်သည်။ ထို့ကြာင့်၊ စကားဝှက်ကို  ဝှက်စာကို standard US ကီးဘုတ် လေးအောက် သုံးပြီး အမြဲတမ်း ရေးထည့်ရမည်။</string>
diff --git a/Translations/Language.nl.xml b/Translations/Language.nl.xml
index d5a9a59..70e6472 100644
--- a/Translations/Language.nl.xml
+++ b/Translations/Language.nl.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="nl" name="Nederlands" en-name="Dutch" version="0.1.0" translators="Jan van der Wal" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="nl" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Toon wachtwoord</control>
     <control lang="nl" key="IDC_TRAVEL_OPEN_EXPLORER">Open &Explorer venster voor gekoppeld volume</control>
     <control lang="nl" key="IDC_TRAV_CACHE_PASSWORDS">&Cache wachtwoorden in programmageheugen</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="nl" key="IDC_UNMOUNTALL">O&ntkoppel Alles</control>
     <control lang="nl" key="IDC_VOLUME_PROPERTIES">Volume &Eigenschappen</control>
     <control lang="nl" key="IDC_VOLUME_TOOLS">Vol&ume Tools</control>
     <control lang="nl" key="IDC_WIPE_CACHE">&Wis Cache</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="nl" key="IDD_HOTKEYS_DLG">VeraCrypt - Sneltoetsen</control>
     <control lang="nl" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="nl" key="IDM_CREATE_RESCUE_DISK">Maak Reddingsschijf aan</control>
     <control lang="nl" key="IDM_CREATE_VOLUME">Volume Aanmaak Wizard</control>
     <control lang="nl" key="IDM_DEFAULT_KEYFILES">Creëer Standaard Sleutelbestanden</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="nl" key="IDM_ENCRYPT_SYSTEM_DEVICE">Codeer Systeem Partitie/Schijf</control>
     <control lang="nl" key="IDM_FAQ">Veel Gestelde Vragen</control>
@@ -243,6 +245,7 @@
     <control lang="nl" key="IDM_UNMOUNT_VOLUME">Ontkoppel Volume</control>
     <control lang="nl" key="IDM_VERIFY_RESCUE_DISK">Controleer Reddingsschijf</control>
     <control lang="nl" key="IDM_VERSION_HISTORY">Versie Geschiedenis</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="nl" key="IDM_VOLUME_PROPERTIES">Volume Eigenschappen</control>
     <control lang="nl" key="IDM_VOLUME_WIZARD">Volume Aanmaak Wizard</control>
     <control lang="nl" key="IDM_WEBSITE">VeraCrypt Website</control>
@@ -523,6 +526,7 @@
     <string lang="nl" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Er trad een fout op tijdens een poging de systeem codeer status op te halen.</string>
     <string lang="nl" key="INIT_SYS_ENC">Applicatie componenten voor systeem codering kunnen niet geïnitialiseerd worden.</string>
     <string lang="nl" key="INIT_RAND">Het programma heeft de initialisatie van de random nummer generator niet kunnen voltooien!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="nl" key="INIT_REGISTER">Het programma heeft de initialisatie niet kunnen voltooien. Het registreren van de 'Dialog Class' is mislukt.</string>
     <string lang="nl" key="INIT_RICHEDIT">Fout: Laden van Rich Edit systeem library mislukt.</string>
     <string lang="nl" key="INTRO_TITLE">VeraCrypt Volume Aanmaak Wizard</string>
@@ -535,6 +539,7 @@
     <string lang="nl" key="MOUNT_BUTTON">Koppe&l</string>
     <string lang="nl" key="NEW_VERSION_REQUIRED">Een nieuwere versie van VeraCrypt is vereist om dit volume te kunnen koppelen.</string>
     <string lang="nl" key="VOL_CREATION_WIZARD_NOT_FOUND">Error: Volume Aanmaak Wizard niet gevonden.\n\nOvertuig u ervan dat het bestand 'VeraCrypt Format.exe' zich in de map bevindt waaruit ook 'VeraCrypt.exe' werd gestart. Als dit niet het geval is, herinstalleer dan VeraCrypt, of zoek 'VeraCrypt Format.exe' op uw schijf en start het.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="nl" key="NEXT">Vol&gende ></string>
     <string lang="nl" key="FINALIZE">&Beëindig</string>
     <string lang="nl" key="INSTALL">I&nstalleer</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="nl" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">WAARSCHUWING: Er is niet-toegewezen ruimte aanwezig tussen de systeem partitie en de eerste partitie daar achter. Na aanmaken van het verborgen operating systeem (OS) mag u geen partitie meer maken in deze ruimte, anders zal het verborgen OS systeem niet meer te starten zijn (totdat u deze partitie weer verwijdert).</string>
     <string lang="nl" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Dit algoritme wordt momenteel niet ondersteund voor systeem codering.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="nl" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Sleutelbestanden zijn niet ondersteund bij systeemcodering.</string>
     <string lang="nl" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Waarschuwing: VeraCrypt kon de originele toetsenbord lay-out niet terugzetten. Dit zou ertoe kunnen leiden dat u een wachtwoord verkeerd ingeeft.</string>
     <string lang="nl" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Fout: Kan de toetsenbord indeling voor VeraCrypt niet instellen op de standaard (US) toetsenbord indeling.\n\nMerk op dat het wachtwoord ingetypt moet worden in de pre-boot omgeving (voor Windows start) waar niet-standaard (US) Windows toetsenbord indelingen niet beschikbaar zijn. Daarom moet het wachtwoord altijd worden ingetypt met gebruik van de standaard (US) toetsenbord indeling.</string>
diff --git a/Translations/Language.nn.xml b/Translations/Language.nn.xml
index f6cc26f..fc235de 100644
--- a/Translations/Language.nn.xml
+++ b/Translations/Language.nn.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="nn" name="Norsk Nynorsk" en-name="Norwegian (Nynorsk)" version="0.1.0" translators="Kjell Rune Helland" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="nn" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Vis passord</control>
     <control lang="nn" key="IDC_TRAVEL_OPEN_EXPLORER">Opne Utforskar vindauga for montert volum</control>
     <control lang="nn" key="IDC_TRAV_CACHE_PASSWORDS">&snøgglagra passord i drivar minne</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="nn" key="IDC_UNMOUNTALL">Avmonter Alle</control>
     <control lang="nn" key="IDC_VOLUME_PROPERTIES">&Volum Eigenskapar...</control>
     <control lang="nn" key="IDC_VOLUME_TOOLS">Volum Verktøy...</control>
     <control lang="nn" key="IDC_WIPE_CACHE">&Slett Snøgglager</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="nn" key="IDD_HOTKEYS_DLG">VeraCrypt - System snøgg tastar</control>
     <control lang="nn" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="en" key="IDM_CREATE_RESCUE_DISK">Create Rescue Disk...</control>
     <control lang="nn" key="IDM_CREATE_VOLUME">Lag nytt Volum...</control>
     <control lang="nn" key="IDM_DEFAULT_KEYFILES">Standard Nøkkelfiler...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="en" key="IDM_ENCRYPT_SYSTEM_DEVICE">Encrypt System Partition/Drive...</control>
     <control lang="nn" key="IDM_FAQ">Ofte Stilte Spørsmål</control>
@@ -243,6 +245,7 @@
     <control lang="nn" key="IDM_UNMOUNT_VOLUME">Avmonter Volum</control>
     <control lang="en" key="IDM_VERIFY_RESCUE_DISK">Verify Rescue Disk</control>
     <control lang="nn" key="IDM_VERSION_HISTORY">Versjons Historie</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="nn" key="IDM_VOLUME_PROPERTIES">Volum Eigenskapar</control>
     <control lang="nn" key="IDM_VOLUME_WIZARD">Volum Oppretting Vegvisar</control>
     <control lang="nn" key="IDM_WEBSITE">VeraCrypt Heimeside</control>
@@ -523,6 +526,7 @@
     <string lang="en" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">An error occurred when obtaining the system encryption status.</string>
     <string lang="en" key="INIT_SYS_ENC">Cannot initialize application components for system encryption.</string>
     <string lang="nn" key="INIT_RAND">Klarte ikkje å initialisera den tilfeldige nummer generatoren!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="nn" key="INIT_REGISTER">Kunne ikkje initialisera programmet. Klarte ikkje å registrera Dialog klassen.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="nn" key="INTRO_TITLE">VeraCrypt Volum Opprettings Vegvisar</string>
@@ -535,6 +539,7 @@
     <string lang="nn" key="MOUNT_BUTTON">Monter</string>
     <string lang="nn" key="NEW_VERSION_REQUIRED">Ein nyare versjon av VeraCrypt er nødvendig for å montera dette volumet.</string>
     <string lang="nn" key="VOL_CREATION_WIZARD_NOT_FOUND">Feil: Volum Opprettings Vegvisar vart ikkje funnen.\n\nSjekk att fila 'VeraCrypt Format.exe' er i same mappe som 'VeraCrypt.exe' vart starta i. Viss den ikkje er der, må du ominstallera VeraCrypt eller finna 'VeraCrypt Format.exe' på hardisken din</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="nn" key="NEXT">&Neste ></string>
     <string lang="nn" key="FINALIZE">&Avslutting</string>
     <string lang="en" key="INSTALL">&Install</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">This algorithm is currently not supported for system encryption.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="en" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Warning: VeraCrypt could not restore the original keyboard layout. This may cause you to enter a password incorrectly.</string>
     <string lang="en" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Error: Cannot set the keyboard layout for VeraCrypt to the standard US keyboard layout.\n\nNote that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available. Therefore, the password must always be typed using the standard US keyboard layout.</string>
diff --git a/Translations/Language.pl.xml b/Translations/Language.pl.xml
index 7adf4b1..edaea43 100644
--- a/Translations/Language.pl.xml
+++ b/Translations/Language.pl.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="pl" name="Polski" en-name="Polish" version="1.0.0" translators="Mirek Druchowicz, Janusz Zamecki, Sobiesław Antolak, Begina Felicysym" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="pl" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Wyświetl hasło</control>
     <control lang="pl" key="IDC_TRAVEL_OPEN_EXPLORER">Otwórz okno &Eksploratora dla podłączonego wolumenu</control>
     <control lang="pl" key="IDC_TRAV_CACHE_PASSWORDS">&Przechowuj hasło w pamięci sterownika</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="pl" key="IDC_UNMOUNTALL">Odłącz w&szystko</control>
     <control lang="pl" key="IDC_VOLUME_PROPERTIES">Właściwośc&i wolumenu...</control>
     <control lang="pl" key="IDC_VOLUME_TOOLS">&Narzędzia wolumenu...</control>
     <control lang="pl" key="IDC_WIPE_CACHE">Wyczyść pamięć &haseł</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="pl" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Ulubione Woluminy</control>
     <control lang="pl" key="IDD_HOTKEYS_DLG">VeraCrypt - Systemowe skróty klawiaturowe</control>
     <control lang="pl" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="pl" key="IDM_CREATE_RESCUE_DISK">Utwórz płytę ratunkową...</control>
     <control lang="pl" key="IDM_CREATE_VOLUME">Utwórz nowy wolumen...</control>
     <control lang="pl" key="IDM_DEFAULT_KEYFILES">Domyślne pliki kluczowe...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="pl" key="IDM_DONATE">Dotuj teraz...</control>
     <control lang="pl" key="IDM_ENCRYPT_SYSTEM_DEVICE">Szyfruj partycję/dysk systemowy...</control>
     <control lang="pl" key="IDM_FAQ">Odpowiedzi na często zadawane pytania (FAQ)</control>
@@ -243,6 +245,7 @@
     <control lang="pl" key="IDM_UNMOUNT_VOLUME">Odłącz wolumen</control>
     <control lang="pl" key="IDM_VERIFY_RESCUE_DISK">Sprawdź płytę ratunkową</control>
     <control lang="pl" key="IDM_VERSION_HISTORY">Historia wersji</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="pl" key="IDM_VOLUME_PROPERTIES">Właściwości wolumenu</control>
     <control lang="pl" key="IDM_VOLUME_WIZARD">Kreator wolumenu</control>
     <control lang="pl" key="IDM_WEBSITE">Strona WWW programu VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="pl" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Wystąpił błąd podczas pobierania statusu szyfrowania systemu. </string>
     <string lang="pl" key="INIT_SYS_ENC">Nie można zainicjować komponentów aplikacji dla szyfrowania systemu.</string>
     <string lang="pl" key="INIT_RAND">Błąd inicjowania generatora liczb losowych!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="pl" key="INIT_REGISTER">Nie można zainicjować aplikacji. Błąd rejestracji klasy okna dialogowego.</string>
     <string lang="pl" key="INIT_RICHEDIT">BŁĄD: Nie można załadować systemowej biblioteki edytora Rich Edit.</string>
     <string lang="pl" key="INTRO_TITLE">Kreator tworzenia wolumenów VeraCrypt</string>
@@ -535,6 +539,7 @@
     <string lang="pl" key="MOUNT_BUTTON">&Podłącz</string>
     <string lang="pl" key="NEW_VERSION_REQUIRED">Do podłączenia tego wolumenu jest wymagana nowsza wersja programu VeraCrypt.</string>
     <string lang="pl" key="VOL_CREATION_WIZARD_NOT_FOUND">Błąd: Nie znaleziono kreatora wolumenów VeraCrypt.\n\nUpewnij się, że plik 'VeraCrypt Format.exe' znajduje się w katalogu, z którego uruchomiono 'VeraCrypt.exe'. Jeśli nie, ponownie zainstaluj program VeraCrypt lub znajdź program 'VeraCrypt Format.exe' na dysku i uruchom go.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="pl" key="NEXT">&Dalej ></string>
     <string lang="pl" key="FINALIZE">&Zakończ</string>
     <string lang="pl" key="INSTALL">&Zainstaluj</string>
@@ -1034,8 +1039,8 @@
     <string lang="pl" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nOsobna boot partycja może zostać usunięta przed instalacją Windows. Aby to zrobić wykonaj następujące kroki:\n\n1) Uruchom dysk instalacyjny Windows.\n\n2) Na ekranie instalatora Windows, wciśnij 'Instaluj teraz' > 'Użytkownika (zaawansowane)'.\n\n3) Wciśnij 'Opcje Dysku'.\n\n4) Wybierz podstawową partycję systemową i usuń ją wciskając 'Delete' i 'OK'.\n\n5) Wybierz partycję 'System Reserved', wciśnij 'Rozszerz' i [...]
     <string lang="pl" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">UWAGA: Istnieje niezalokowane miejsce pomiędzy partycją systemową i pierwszą partycją za partycją systemową. Po stworzeniu ukrytego systemu operacyjnego nie mżesz tworzyć nowych partycji w niezaalokowanym miejscu. Inaczej zabootowanie ukrytego systemu operacyjnego może być niemożliwe (dopóki nie skasujesz nowo stworzonej partycji).</string>
     <string lang="pl" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Ten algorytm nie jest obecnie obsługiwany do szyfrowania systemu.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="pl" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Pliki kluczowe nie są obecnie obsługiwane/wspierane do szyfrowania systemu.</string>
     <string lang="pl" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Ostrzeżenie: Program VeraCrypt nie mógł odtworzyć oryginalnych ustawień klawiatury. To może spowodować błędne wprowadzenie hasła.</string>
     <string lang="pl" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Błąd: Nie można ustawić trybu klawiatury dla VeraCrypt na układ USA.\n\nHasło będzie wprowadzane w środowisku PRZED uruchomieniem systemu Windows, gdzie inne niż standardowy układy klawiatury nie są dostępne. Dlatego, hasło MUSI być zawsze wprowadzane przy użyciu standardowego układu klawiatury USA.</string>
diff --git a/Translations/Language.pt-br.xml b/Translations/Language.pt-br.xml
index a328888..85de29a 100644
--- a/Translations/Language.pt-br.xml
+++ b/Translations/Language.pt-br.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="pt-br" name="Português-Brasil" en-name="Portuguese (Brazil)" version="0.1.0" translators="Thiago C. L. Mendes, Lecidio S. Alencar , Lucas C. Ferreira" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="pt-br" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Mostrar senha</control>
     <control lang="pt-br" key="IDC_TRAVEL_OPEN_EXPLORER">Abrir janela do &Explorer para os volumes montados</control>
     <control lang="pt-br" key="IDC_TRAV_CACHE_PASSWORDS">Armazenar as senhas na memória da unidade</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="pt-br" key="IDC_UNMOUNTALL">De&smontar Todos</control>
     <control lang="pt-br" key="IDC_VOLUME_PROPERTIES">Propriedades do &Volume</control>
     <control lang="pt-br" key="IDC_VOLUME_TOOLS">Ferramen&tas do Volume</control>
     <control lang="pt-br" key="IDC_WIPE_CACHE">&Limpar Cache</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="pt-br" key="IDD_HOTKEYS_DLG">VeraCrypt - Atalhos</control>
     <control lang="pt-br" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="pt-br" key="IDM_CREATE_RESCUE_DISK">Criar Disco de Emergência...</control>
     <control lang="pt-br" key="IDM_CREATE_VOLUME">Criar Novo Volume...</control>
     <control lang="pt-br" key="IDM_DEFAULT_KEYFILES">Arquivos-chave padrão...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="pt-br" key="IDM_ENCRYPT_SYSTEM_DEVICE">Criptografar Unidade/Partição de Sistema...</control>
     <control lang="pt-br" key="IDM_FAQ">Perguntas Frequentes</control>
@@ -243,6 +245,7 @@
     <control lang="pt-br" key="IDM_UNMOUNT_VOLUME">Desmontar Volume</control>
     <control lang="pt-br" key="IDM_VERIFY_RESCUE_DISK">Verificar Disco de Emergência</control>
     <control lang="pt-br" key="IDM_VERSION_HISTORY">Histórico de Versões</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="pt-br" key="IDM_VOLUME_PROPERTIES">Propriedades do Volume</control>
     <control lang="pt-br" key="IDM_VOLUME_WIZARD">Assistente de Criação de Volume</control>
     <control lang="pt-br" key="IDM_WEBSITE">Website do VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="pt-br" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Ocorreu um erro ao obter o estado de criptografia do sistema.</string>
     <string lang="pt-br" key="INIT_SYS_ENC">Não foi possível iniciar componentes do programa de criptografia do sistema.</string>
     <string lang="pt-br" key="INIT_RAND">Falha ao iniciar o gerador de números aleatórios!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="pt-br" key="INIT_REGISTER">Não foi possível iniciar a aplicação. Falha ao registrar a classe 'Dialog'.</string>
     <string lang="pt-br" key="INIT_RICHEDIT">Erro: Falha ao carregar a biblioteca de sistema Rich Edit.</string>
     <string lang="pt-br" key="INTRO_TITLE">Criação de Volume VeraCrypt</string>
@@ -535,6 +539,7 @@
     <string lang="pt-br" key="MOUNT_BUTTON">&Montar</string>
     <string lang="pt-br" key="NEW_VERSION_REQUIRED">Uma versão mais recente do VeraCrypt é necessária para montar este disco.</string>
     <string lang="pt-br" key="VOL_CREATION_WIZARD_NOT_FOUND">Erro: O Assistente de Criação de Disco não foi encontrado.\n\nFavor certifique-se de que o arquivo 'VeraCrypt Format.exe' está na pasta de onde o VeraCrypt foi executado. Caso contrário, reinstale o VeraCrypt ou localize o arquivo 'VeraCrypt Format.exe' no seu sistema e execute-o.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="pt-br" key="NEXT">&Avançar ></string>
     <string lang="pt-br" key="FINALIZE">&Concluir</string>
     <string lang="pt-br" key="INSTALL">&Instalar</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="pt-br" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Aviso: Há espaço não alocado entre a partição de sistema e a primeira partição depois dela. Depois de criar o sistema operacional oculto, você não deve criar novas partições nesse espaço não alocado. Caso contrário, o sistema operacional oculto será impossibilitado de inicializar (até você excluir essas recém-criadas partições).</string>
     <string lang="pt-br" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Este algoritmo não é suportado para criptografia de sistema.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="pt-br" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Arquivos-chave atualmente não são suportados para criptografia do sistema.</string>
     <string lang="pt-br" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Aviso: O VeraCrypt não conseguiu restaurar o layout original do teclado. Isto poderá fazê-lo digitar a senha incorretamente.</string>
     <string lang="pt-br" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Erro: Não foi possível configurar o layout do teclado para o VeraCrypt como layout Estados Unidos (Internacional).\n\nLembre que a senha precisa ser digitada em ambiente pré-boot (antes de o Windows iniciar) onde layouts não-Windows Estados Unidos (Internacional) não estão disponíveis. Por isso, a senha deve ser digitada sempre usando o layout Estados Unidos (Internacional).</string>
diff --git a/Translations/Language.ru.xml b/Translations/Language.ru.xml
index 9be6f0b..563bda7 100644
--- a/Translations/Language.ru.xml
+++ b/Translations/Language.ru.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="ru" name="Русский" en-name="Russian" version="1.0.0" translators="Dmitry Yerokhin" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="ru" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Показ пароля</control>
     <control lang="ru" key="IDC_TRAVEL_OPEN_EXPLORER">&Открыть смонтированный том в окне Проводника</control>
     <control lang="ru" key="IDC_TRAV_CACHE_PASSWORDS">&Кэшировать пароль в памяти драйвера</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="ru" key="IDC_UNMOUNTALL">&Размонтировать все</control>
     <control lang="ru" key="IDC_VOLUME_PROPERTIES">Сво&йства тома...</control>
     <control lang="ru" key="IDC_VOLUME_TOOLS">О&перации с томами</control>
     <control lang="ru" key="IDC_WIPE_CACHE">О&чистить кэш</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="ru" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Избранные тома</control>
     <control lang="ru" key="IDD_HOTKEYS_DLG">VeraCrypt - Общесистемные горячие клавиши</control>
     <control lang="ru" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="ru" key="IDM_CREATE_RESCUE_DISK">Создать диск восстановления...</control>
     <control lang="ru" key="IDM_CREATE_VOLUME">Создать новый том...</control>
     <control lang="ru" key="IDM_DEFAULT_KEYFILES">Ключевые файлы по умолчанию...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="ru" key="IDM_DONATE">Помочь...</control>
     <control lang="ru" key="IDM_ENCRYPT_SYSTEM_DEVICE">Зашифровать системный раздел/диск...</control>
     <control lang="ru" key="IDM_FAQ">Часто задаваемые вопросы</control>
@@ -243,6 +245,7 @@
     <control lang="ru" key="IDM_UNMOUNT_VOLUME">Размонтировать том</control>
     <control lang="ru" key="IDM_VERIFY_RESCUE_DISK">Проверить диск восстановления</control>
     <control lang="ru" key="IDM_VERSION_HISTORY">История версий</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="ru" key="IDM_VOLUME_PROPERTIES">Свойства тома</control>
     <control lang="ru" key="IDM_VOLUME_WIZARD">Мастер создания томов</control>
     <control lang="ru" key="IDM_WEBSITE">Сайт VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="ru" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Ошибка получения состояния системного шифрования.</string>
     <string lang="ru" key="INIT_SYS_ENC">Невозможно инициализировать компоненты приложения для системного шифрования.</string>
     <string lang="ru" key="INIT_RAND">Ошибка инициализации генератора случайных чисел.</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="ru" key="INIT_REGISTER">Ошибка инициализации приложения. Невозможно зарегистрировать класс Dialog.</string>
     <string lang="ru" key="INIT_RICHEDIT">Ошибка загрузки системной библиотеки Rich Edit.</string>
     <string lang="ru" key="INTRO_TITLE">Мастер создания томов VeraCrypt</string>
@@ -535,6 +539,7 @@
     <string lang="ru" key="MOUNT_BUTTON">С&монтировать</string>
     <string lang="ru" key="NEW_VERSION_REQUIRED">Для монтирования этого тома требуется более новая версия VeraCrypt.</string>
     <string lang="ru" key="VOL_CREATION_WIZARD_NOT_FOUND">Ошибка! Не найден мастер создания томов.\n\nПроверьте, имеется ли в папке, откуда был запущен файл 'VeraCrypt.exe', файл 'VeraCrypt Format.exe'. Если его там нет, переустановите VeraCrypt или найдите на жёстком диске файл 'VeraCrypt Format.exe' и запустите его.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="ru" key="NEXT">&Далее ></string>
     <string lang="ru" key="FINALIZE">&Готово</string>
     <string lang="ru" key="INSTALL">&Установить</string>
@@ -1034,8 +1039,8 @@
     <string lang="ru" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nДополнительный загрузочный раздел можно удалить до установки Windows. Для этого выполните следующие действия:\n\n1) Загрузите Windows с инсталляционного компакт-диска.\n\n2) На экране установки Windows нажмите 'Install now' > 'Custom (advanced)'.\n\n3) Нажмите 'Drive Options'.\n\n4) Выберите основной системный раздел и удалите его, нажав 'Delete' и 'OK'.\n\n5) Выберите раздел 'System Reserved', нажмите 'Extend' и  [...]
     <string lang="ru" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Внимание! Между системным разделом и первым разделом за ним имеется нераспределённое место. После создания скрытой операционной системы вы не должны создавать в этой нераспределённой области никаких новых разделов. В противном случае скрытая ОС не сможет загрузиться (до тех пор, пока не будут удалены такие вновь созданные разделы).</string>
     <string lang="ru" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">В данный момент этот алгоритм для шифрования системы не поддерживается.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="ru" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">В настоящий момент ключевые файлы для шифрования системы не поддерживаются.</string>
     <string lang="ru" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Внимание! VeraCrypt не может восстановить первоначальную раскладку клавиатуры. Это может привести к неправильному вводу пароля.</string>
     <string lang="ru" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Ошибка! Невозможно установить раскладку клавиатуры для VeraCrypt в стандартную американскую (US).\n\nОбратите внимание, что пароль вводится ДО загрузки Windows, когда любые раскладки клавиатуры, отличающиеся от американской, ещё недоступны. Поэтому пароль всегда должен вводиться при стандартной американской раскладке.</string>
diff --git a/Translations/Language.sk.xml b/Translations/Language.sk.xml
index 4fbe17a..b1ebe2b 100644
--- a/Translations/Language.sk.xml
+++ b/Translations/Language.sk.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="sk" name="Slovenčina" en-name="Slovak" version="0.1.0" translators="Kamil David" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="sk" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Zobraziť heslo</control>
     <control lang="sk" key="IDC_TRAVEL_OPEN_EXPLORER">Otvoriť okno &Prieskumníka pre pripojený zväzok</control>
     <control lang="sk" key="IDC_TRAV_CACHE_PASSWORDS">&Ukladať hesla do medzipamäte</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="sk" key="IDC_UNMOUNTALL">O&dpojiť všetko</control>
     <control lang="sk" key="IDC_VOLUME_PROPERTIES">Vlastnos&ti zväzku...</control>
     <control lang="sk" key="IDC_VOLUME_TOOLS">&Nástroje zväzku...</control>
     <control lang="sk" key="IDC_WIPE_CACHE">Vyčistiť &medzipamäť</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="sk" key="IDD_HOTKEYS_DLG">VeraCrypt - Systémové klávesové skratky</control>
     <control lang="sk" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="en" key="IDM_CREATE_RESCUE_DISK">Create Rescue Disk...</control>
     <control lang="sk" key="IDM_CREATE_VOLUME">Vytvoriť nový zväzok...</control>
     <control lang="sk" key="IDM_DEFAULT_KEYFILES">Pôvodné (default) súborové kľúče...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="en" key="IDM_ENCRYPT_SYSTEM_DEVICE">Encrypt System Partition/Drive...</control>
     <control lang="sk" key="IDM_FAQ">Často kladené otázky</control>
@@ -243,6 +245,7 @@
     <control lang="sk" key="IDM_UNMOUNT_VOLUME">Odpojiť zväzok</control>
     <control lang="en" key="IDM_VERIFY_RESCUE_DISK">Verify Rescue Disk</control>
     <control lang="sk" key="IDM_VERSION_HISTORY">História verzií</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="sk" key="IDM_VOLUME_PROPERTIES">Vlastnosti zväzku</control>
     <control lang="sk" key="IDM_VOLUME_WIZARD">Sprievodca vytvorením zväzku</control>
     <control lang="sk" key="IDM_WEBSITE">Domovská stránka VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="en" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">An error occurred when obtaining the system encryption status.</string>
     <string lang="en" key="INIT_SYS_ENC">Cannot initialize application components for system encryption.</string>
     <string lang="sk" key="INIT_RAND">Zlyhala inicializácia generátora náhodných čísel!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="sk" key="INIT_REGISTER">Aplikácia nemohla byť inicializovaná. Zlyhala registrácia dialógovej triedy.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="sk" key="INTRO_TITLE">Sprievodca vytvorením zväzku VeraCrypt</string>
@@ -535,6 +539,7 @@
     <string lang="sk" key="MOUNT_BUTTON">&Pripojiť</string>
     <string lang="sk" key="NEW_VERSION_REQUIRED">Pre pripojenia tohto oddielu je potrebné novšia verzia programu VeraCrypt.</string>
     <string lang="sk" key="VOL_CREATION_WIZARD_NOT_FOUND">Chyba: Sprievodca vytvorením zväzku nebol nájdený.\n\nUbezpečte sa prosím, že  súbor 'VeraCrypt Format.exe' je v zložke, z ktorého bol 'VeraCrypt.exe' spustený. Pokiaľ nie je, preinštalujte prosím VeraCrypt alebo nájdite 'VeraCrypt Format.exe' na Vašom disku a spustite ho.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="sk" key="NEXT">&Ďalší ></string>
     <string lang="sk" key="FINALIZE">&Dokončiť</string>
     <string lang="en" key="INSTALL">&Install</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">This algorithm is currently not supported for system encryption.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="en" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Warning: VeraCrypt could not restore the original keyboard layout. This may cause you to enter a password incorrectly.</string>
     <string lang="en" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Error: Cannot set the keyboard layout for VeraCrypt to the standard US keyboard layout.\n\nNote that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available. Therefore, the password must always be typed using the standard US keyboard layout.</string>
diff --git a/Translations/Language.sl.xml b/Translations/Language.sl.xml
index 0c5d0e3..2a8bd68 100644
--- a/Translations/Language.sl.xml
+++ b/Translations/Language.sl.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="sl" name="Slovenščina" en-name="Slovenian" version="0.1.0" translators="Erik David Salam" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="sl" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Prikaži geslo</control>
     <control lang="sl" key="IDC_TRAVEL_OPEN_EXPLORER">&Odpri okno Raziskovalca za priklopljeni zbirnik</control>
     <control lang="sl" key="IDC_TRAV_CACHE_PASSWORDS">&Shrani geslo v pomnilnik gonilnika</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="sl" key="IDC_UNMOUNTALL">&Odklopi vse</control>
     <control lang="sl" key="IDC_VOLUME_PROPERTIES">&Lastnosti zbirnika...</control>
     <control lang="sl" key="IDC_VOLUME_TOOLS">&Orodja za zbirnik...</control>
     <control lang="sl" key="IDC_WIPE_CACHE">&Izbriši predpomnilnik</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="sl" key="IDD_HOTKEYS_DLG">VeraCrypt - Širše sistemske vroče tipke</control>
     <control lang="en" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="sl" key="IDM_CREATE_RESCUE_DISK">Ustvari rešilni disk...</control>
     <control lang="sl" key="IDM_CREATE_VOLUME">Ustvari nov zbirnik...</control>
     <control lang="sl" key="IDM_DEFAULT_KEYFILES">Privzete ključne datoteke...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="sl" key="IDM_ENCRYPT_SYSTEM_DEVICE">Šifriraj sistemski razdelek/pogon...</control>
     <control lang="sl" key="IDM_FAQ">Pogosto zastavljena vprašanja</control>
@@ -243,6 +245,7 @@
     <control lang="sl" key="IDM_UNMOUNT_VOLUME">Odklopi zbirnik</control>
     <control lang="sl" key="IDM_VERIFY_RESCUE_DISK">Preveri rešilni disk</control>
     <control lang="sl" key="IDM_VERSION_HISTORY">Zgodovina različic</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="sl" key="IDM_VOLUME_PROPERTIES">Lastnosti zbirnika</control>
     <control lang="sl" key="IDM_VOLUME_WIZARD">Čarovnik za ustvarjanje zbirnikov</control>
     <control lang="sl" key="IDM_WEBSITE">VeraCrypt-ova spletna stran</control>
@@ -522,7 +525,8 @@
     <string lang="en" key="CONFIRM_RESTART">Your computer must be restarted.\n\nDo you want to restart it now?</string>
     <string lang="en" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">An error occurred when obtaining the system encryption status.</string>
     <string lang="en" key="INIT_SYS_ENC">Cannot initialize application components for system encryption.</string>
-    <string lang="en" key="INIT_RAND">Failed to initialize the random number generator!</string>
+    <string lang="en" key="INIT_RAND">Failed to initialize the random number generator!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="en" key="INIT_REGISTER">Unable to initialize the application. Failed to register the Dialog class.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="sl" key="INTRO_TITLE">VeraCrypt-ov čarovnik za ustvar. zbirnika</string>
@@ -535,6 +539,7 @@
     <string lang="sl" key="MOUNT_BUTTON">&Priklopi</string>
     <string lang="sl" key="NEW_VERSION_REQUIRED">Novejša različica programa VeraCrypt je potrebna, da lahko priklopite ta zbirnik.</string>
     <string lang="en" key="VOL_CREATION_WIZARD_NOT_FOUND">Error: Volume Creation Wizard not found.\n\nPlease make sure that the file 'VeraCrypt Format.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCrypt Format.exe' on your disk and run it.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="sl" key="NEXT">&Naprej ></string>
     <string lang="en" key="FINALIZE">&Finish</string>
     <string lang="en" key="INSTALL">&Install</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">This algorithm is currently not supported for system encryption.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="en" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Warning: VeraCrypt could not restore the original keyboard layout. This may cause you to enter a password incorrectly.</string>
     <string lang="en" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Error: Cannot set the keyboard layout for VeraCrypt to the standard US keyboard layout.\n\nNote that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available. Therefore, the password must always be typed using the standard US keyboard layout.</string>
diff --git a/Translations/Language.sv.xml b/Translations/Language.sv.xml
index a0f5119..2f2409c 100644
--- a/Translations/Language.sv.xml
+++ b/Translations/Language.sv.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="sv" name="Svenska" en-name="Swedish" version="1.0.0" translators="Peter Runesson" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="sv" key="IDC_SHOW_PASSWORD_CHPWD_ORI">&Visa lösenord</control>
     <control lang="sv" key="IDC_TRAVEL_OPEN_EXPLORER">Öppna &Utforskaren efter montering</control>
     <control lang="sv" key="IDC_TRAV_CACHE_PASSWORDS">Lagra lösenord i drivrutinens minnes&cache</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="sv" key="IDC_UNMOUNTALL">Demontera &allt</control>
     <control lang="sv" key="IDC_VOLUME_PROPERTIES">Volym&egenskaper …</control>
     <control lang="sv" key="IDC_VOLUME_TOOLS">Volymverkty&g …</control>
     <control lang="sv" key="IDC_WIPE_CACHE">Töm lösenords&cache</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="sv" key="IDD_FAVORITE_VOLUMES">VeraCrypt – Volymfavoriter</control>
     <control lang="sv" key="IDD_HOTKEYS_DLG">VeraCrypt – Snabbtangenter</control>
     <control lang="sv" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="sv" key="IDM_CREATE_RESCUE_DISK">Skapa återställningsskiva …</control>
     <control lang="sv" key="IDM_CREATE_VOLUME">Skapa ny volym …</control>
     <control lang="sv" key="IDM_DEFAULT_KEYFILES">Standardnyckelfiler …</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="sv" key="IDM_DONATE">Donera nu …</control>
     <control lang="sv" key="IDM_ENCRYPT_SYSTEM_DEVICE">Kryptera systempartition eller -enhet …</control>
     <control lang="sv" key="IDM_FAQ">Vanliga frågor och svar (FAQ)</control>
@@ -243,6 +245,7 @@
     <control lang="sv" key="IDM_UNMOUNT_VOLUME">Demontera volym</control>
     <control lang="sv" key="IDM_VERIFY_RESCUE_DISK">Verifiera återställningsskiva</control>
     <control lang="sv" key="IDM_VERSION_HISTORY">Versionshistorik</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="sv" key="IDM_VOLUME_PROPERTIES">Volymegenskaper</control>
     <control lang="sv" key="IDM_VOLUME_WIZARD">Guiden Skapa VeraCrypt-volym</control>
     <control lang="sv" key="IDM_WEBSITE">VeraCrypts webbplats</control>
@@ -523,6 +526,7 @@
     <string lang="sv" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Ett fel inträffade när systemets krypteringsstatus skulle inhämtas.</string>
     <string lang="sv" key="INIT_SYS_ENC">Det går inte att initiera applikationskomponenter för systemkryptering.</string>
     <string lang="sv" key="INIT_RAND">Initieringen av slumptalsgeneratorn misslyckades!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="sv" key="INIT_REGISTER">Det gick inte att initiera applikationen. Registreringen av dialogruteklassen misslyckades.</string>
     <string lang="sv" key="INIT_RICHEDIT">Fel: Det gick inte att ladda systembiblioteket för ”Rich Edit”.</string>
     <string lang="sv" key="INTRO_TITLE">Guiden Skapa VeraCrypt-volym</string>
@@ -535,6 +539,7 @@
     <string lang="sv" key="MOUNT_BUTTON">&Montera</string>
     <string lang="sv" key="NEW_VERSION_REQUIRED">En nyare version av VeraCrypt krävs för att montera denna volym.</string>
     <string lang="sv" key="VOL_CREATION_WIZARD_NOT_FOUND">Fel: Det går inte att hitta guiden Skapa VeraCrypt-volym.\n\nKontrollera att filen ”VeraCrypt Format.exe” finns i den mapp från vilken ”VeraCrypt.exe” startades. Om filen inte finns där, ominstallera VeraCrypt eller leta upp filen ”VeraCrypt Format.exe” på din disk och kör den därifrån.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="sv" key="NEXT">&Nästa ></string>
     <string lang="sv" key="FINALIZE">&Slutför</string>
     <string lang="sv" key="INSTALL">&Installera</string>
@@ -1034,8 +1039,8 @@
     <string lang="sv" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nDen extra startpartitionen kan tas bort innan Windows installeras. Följ nedanstående steg för att göra det:\n\n1) Starta Windows installationsskiva.\n\n2) I Windows installationsprogram väljer du alternativen ”Installera nu” följt av ”Anpassad (avancerat)”.\n\n3) Klicka på ”Enhetsalternativ (avancerat)”.\n\n4) Markera systempartitionen och ta bort den genom att klicka på ”Ta bort” och bekräfta med ”OK”.\n\n5) Välj pa [...]
     <string lang="sv" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Varning: Det finns oallokerat utrymme mellan systempartitionen och den första partitionen efter den. Efter att du skapat det dolda operativsystemet, får du inte skapa några nya partitioner i det oallokerade utrymmet. I så fall kommer det dolda operativsystemet att vara omöjligt att starta (tills du tar bort de nyskapade partitionerna).</string>
     <string lang="sv" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Denna algoritm stöds för närvarande inte vid systemkryptering.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="sv" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Nyckelfiler stöds för närvarande inte vid systemkryptering.</string>
     <string lang="sv" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Varning: VeraCrypt kunde inte återställa den ursprungliga tangentbordslayouten. Detta kan orsaka att du anger ett felaktigt lösenord.</string>
     <string lang="sv" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Fel: Det går inte att ange amerikansk tangentbordslayout som tangentbordslayout för VeraCrypt.\n\nObservera att lösenordet måste anges i förstartsmiljön (innan Windows startas), där inga andra tangentbordslayouter än den amerikanska finns tillgängliga. Därför måste amerikansk tangentbordslayout alltid användas när du anger lösenordet.</string>
diff --git a/Translations/Language.tr.xml b/Translations/Language.tr.xml
index d24f4e2..152d0dd 100644
--- a/Translations/Language.tr.xml
+++ b/Translations/Language.tr.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="tr" name="Türkçe" en-name="Turkish" version="0.1.0" translators="Ali İskender Turan, Zeynel Abidin Öztürk" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="tr" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Parolayı göster</control>
     <control lang="tr" key="IDC_TRAVEL_OPEN_EXPLORER">Bağlanan &birim için Gezgin penceresini aç</control>
     <control lang="tr" key="IDC_TRAV_CACHE_PASSWORDS">&Parolayı aygıt belleğinde önbelleğe al</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="tr" key="IDC_UNMOUNTALL">H&epsinin Bağlantısını Kes</control>
     <control lang="tr" key="IDC_VOLUME_PROPERTIES">Birim Ö&zellikleri...</control>
     <control lang="tr" key="IDC_VOLUME_TOOLS">Biri&m Araçları...</control>
     <control lang="tr" key="IDC_WIPE_CACHE">Ö&nbelleği Temizle</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="tr" key="IDD_HOTKEYS_DLG">VeraCrypt - Sistem çapında kısayol tuşları</control>
     <control lang="tr" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="en" key="IDM_CREATE_RESCUE_DISK">Create Rescue Disk...</control>
     <control lang="tr" key="IDM_CREATE_VOLUME">Yeni Birim Oluştur...</control>
     <control lang="tr" key="IDM_DEFAULT_KEYFILES">Varsayılan Anahtar Dosyaları...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="en" key="IDM_ENCRYPT_SYSTEM_DEVICE">Encrypt System Partition/Drive...</control>
     <control lang="tr" key="IDM_FAQ">Sık Sorulan Sorular</control>
@@ -243,6 +245,7 @@
     <control lang="tr" key="IDM_UNMOUNT_VOLUME">Birimin Bağlantısını Kes</control>
     <control lang="en" key="IDM_VERIFY_RESCUE_DISK">Verify Rescue Disk</control>
     <control lang="tr" key="IDM_VERSION_HISTORY">Sürüm Geçmişi</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="tr" key="IDM_VOLUME_PROPERTIES">Birim Özellikleri</control>
     <control lang="tr" key="IDM_VOLUME_WIZARD">Birim Oluşturma Sihirbazı</control>
     <control lang="tr" key="IDM_WEBSITE">VeraCrypt Web Sayfası</control>
@@ -523,6 +526,7 @@
     <string lang="en" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">An error occurred when obtaining the system encryption status.</string>
     <string lang="en" key="INIT_SYS_ENC">Cannot initialize application components for system encryption.</string>
     <string lang="tr" key="INIT_RAND">Rasgele sayı oluşturucusunu başlatma başarısız!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="tr" key="INIT_REGISTER">Uygulamayı başlatma başarısız. Dialog sınıfını kayıt etme başarısız.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="tr" key="INTRO_TITLE">VeraCrypt Birim Oluşturma Sihirbazı</string>
@@ -535,6 +539,7 @@
     <string lang="tr" key="MOUNT_BUTTON">Bağ&la</string>
     <string lang="tr" key="NEW_VERSION_REQUIRED">Bu birimi bağlamak için VeraCrypt'in daha yeni bir sürümü gerekiyor.</string>
     <string lang="tr" key="VOL_CREATION_WIZARD_NOT_FOUND">Hata: Birim Oluşturma Sihirbazı bulunamadı.\n\nLütfen 'VeraCrypt Format.exe' dosyasının 'VeraCrypt.exe' uygulamasının başlatıldığı konumda olduğundan emin olun. Eğer burada yoksa, lütfen VeraCrypt'i yeniden yükleyin veya diskiniz üzerinde 'VeraCrypt Format.exe' dosyasını bulun ve çalıştırın.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="tr" key="NEXT">S&onraki ></string>
     <string lang="tr" key="FINALIZE">&Bitir</string>
     <string lang="en" key="INSTALL">&Install</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">This algorithm is currently not supported for system encryption.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="en" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Warning: VeraCrypt could not restore the original keyboard layout. This may cause you to enter a password incorrectly.</string>
     <string lang="en" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Error: Cannot set the keyboard layout for VeraCrypt to the standard US keyboard layout.\n\nNote that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available. Therefore, the password must always be typed using the standard US keyboard layout.</string>
diff --git a/Translations/Language.uk.xml b/Translations/Language.uk.xml
index 9fedf57..39e29a0 100644
--- a/Translations/Language.uk.xml
+++ b/Translations/Language.uk.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="uk" name="Українська" en-name="Ukrainian" version="1.0.0" translators="Kravchuk Olexandr, Babchuk Volodymyr" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="uk" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Показати пароль</control>
     <control lang="uk" key="IDC_TRAVEL_OPEN_EXPLORER">&Відкрити змонтований том в вікні Провідника</control>
     <control lang="uk" key="IDC_TRAV_CACHE_PASSWORDS">&Кешувати пароль в памяті драйвера</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="uk" key="IDC_UNMOUNTALL">&Розмонтувати всі</control>
     <control lang="uk" key="IDC_VOLUME_PROPERTIES">Власт&ивості тома...</control>
     <control lang="uk" key="IDC_VOLUME_TOOLS">О&перації...</control>
     <control lang="uk" key="IDC_WIPE_CACHE">О&чистити кеш</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="uk" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Обрані томи</control>
     <control lang="uk" key="IDD_HOTKEYS_DLG">VeraCrypt - Загальноистемні гарячі клавіші</control>
     <control lang="uk" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="uk" key="IDM_CREATE_RESCUE_DISK">Створити диск відновлення...</control>
     <control lang="uk" key="IDM_CREATE_VOLUME">Створити новий том...</control>
     <control lang="uk" key="IDM_DEFAULT_KEYFILES">Типові ключові файли...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="uk" key="IDM_DONATE">допомога проекту...</control>
     <control lang="uk" key="IDM_ENCRYPT_SYSTEM_DEVICE">Зашифрувати системний розділ/диск...</control>
     <control lang="uk" key="IDM_FAQ">Часто задавані питання</control>
@@ -243,6 +245,7 @@
     <control lang="uk" key="IDM_UNMOUNT_VOLUME">Розмонтувати том</control>
     <control lang="uk" key="IDM_VERIFY_RESCUE_DISK">Провірити диск відновленння</control>
     <control lang="uk" key="IDM_VERSION_HISTORY">Історія версії</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="uk" key="IDM_VOLUME_PROPERTIES">Властивості тома</control>
     <control lang="uk" key="IDM_VOLUME_WIZARD">Майстер створення томів</control>
     <control lang="uk" key="IDM_WEBSITE">Сайт VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="uk" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">При отриманні статусу системного шифрування виникла помилка.</string>
     <string lang="uk" key="INIT_SYS_ENC">Неможливо ініціалізувати компонент застосунку для системного шифрування.</string>
     <string lang="uk" key="INIT_RAND">Невдала ініціалізація генератора випадкових чисел!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="uk" key="INIT_REGISTER">Неможливо ініціалізувати застосунок. Невдала реєстрація класу Dialog.</string>
     <string lang="uk" key="INIT_RICHEDIT">Помилка завантаження системної бібліотеки Rich Edit.</string>
     <string lang="uk" key="INTRO_TITLE">Майстер створення тому VeraCrypt</string>
@@ -535,6 +539,7 @@
     <string lang="uk" key="MOUNT_BUTTON">&Монтувати</string>
     <string lang="uk" key="NEW_VERSION_REQUIRED">Для монтування цього тому потрібна більш нова версія VeraCrypt.</string>
     <string lang="uk" key="VOL_CREATION_WIZARD_NOT_FOUND">Помилка: не знайдено Майстра створення тому.\n\nПеревірте наявність файлу 'VeraCrypt Format.exe' у теці запущеного файлу 'VeraCrypt.exe'. Якщо його немає, будь ласка перевстановіть VeraCrypt або знайдіть файл 'VeraCrypt Format.exe' та запустіть його.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="uk" key="NEXT">&Далі ></string>
     <string lang="uk" key="FINALIZE">&Завершити</string>
     <string lang="uk" key="INSTALL">&Встановити</string>
@@ -1034,8 +1039,8 @@
     <string lang="uk" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nДодатковий завантажувальний розділ можна видалити до встановлення Windows. Для цього виконайте наступні дії:\n\n1) Завантажте Windows з інсталяційного компакт-диска.\n\n2) На екрані встановлення Windows натисніть 'Install now' > 'Custom (advanced)'.\n\n3) Натисніть 'Drive Options'.\n\n4) Виберіть основний системний розділ і видаліть його, натиснувши 'Delete' та 'OK'.\n\n5) Виберіть розділ 'System Reserved', натисн [...]
     <string lang="uk" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Увага! Між системним розділом і першим розділом за ним є нерозподілене місце. Після створення прихованої операційної системи ви не повинні створювати в цій нерозподіленій області жодних нових розділів. В іншому випадку прихована ОС не зможе завантажитися (до тих пір, поки не будуть вилучені такі знову створені розділи).</string>
     <string lang="uk" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">У даний момент цей алгоритм для шифрування системи не підтримується.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="uk" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">В даний момент ключові файли для шифрування системи не підтримуються.</string>
     <string lang="uk" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Увага! VeraCrypt не може відновити первісну розкладку клавіатури. Це може призвести до неправильного введення пароля.</string>
     <string lang="uk" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Помилка! Неможливо встановити розкладку клавіатури для VeraCrypt в стандартну американську (US).\n\nЗверніть увагу, що пароль вводиться ДО завантаження Windows, коли будь-які розкладки клавіатури, що відрізняються від американської, ще недоступні. Тому пароль завжди повинен вводиться при стандартній американської розкладці.</string>
diff --git a/Translations/Language.uz.xml b/Translations/Language.uz.xml
index 63f793a..ada99f5 100644
--- a/Translations/Language.uz.xml
+++ b/Translations/Language.uz.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="uz" name="Ўзбекча" en-name="Uzbek (Cyrillic)" version="0.1.0" translators="Abdurauf Azizov, Dmitry Yerokhin" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="uz" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Показ пароля</control>
     <control lang="uz" key="IDC_TRAVEL_OPEN_EXPLORER">&Открыть смонтированный том в окне Проводника</control>
     <control lang="uz" key="IDC_TRAV_CACHE_PASSWORDS">&Кэшировать пароль в памяти драйвера</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="uz" key="IDC_UNMOUNTALL">&Уланишларни узиш</control>
     <control lang="uz" key="IDC_VOLUME_PROPERTIES">Сво&йства тома...</control>
     <control lang="uz" key="IDC_VOLUME_TOOLS">О&перациялар...</control>
     <control lang="uz" key="IDC_WIPE_CACHE">О&чистить кэш</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="uz" key="IDD_HOTKEYS_DLG">VeraCrypt - Общесистемные горячие клавиши</control>
     <control lang="uz" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="uz" key="IDM_CREATE_RESCUE_DISK">Создать диск восстановления...</control>
     <control lang="uz" key="IDM_CREATE_VOLUME">Создать новый том...</control>
     <control lang="uz" key="IDM_DEFAULT_KEYFILES">Ключевые файлы по умолчанию...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="uz" key="IDM_ENCRYPT_SYSTEM_DEVICE">Зашифровать системный раздел/диск...</control>
     <control lang="uz" key="IDM_FAQ">Часто задаваемые вопросы</control>
@@ -243,6 +245,7 @@
     <control lang="uz" key="IDM_UNMOUNT_VOLUME">Размонтировать том</control>
     <control lang="uz" key="IDM_VERIFY_RESCUE_DISK">Проверить диск восстановления</control>
     <control lang="uz" key="IDM_VERSION_HISTORY">История версий</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="uz" key="IDM_VOLUME_PROPERTIES">Свойства тома</control>
     <control lang="uz" key="IDM_VOLUME_WIZARD">Мастер создания томов</control>
     <control lang="uz" key="IDM_WEBSITE">Сайт VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="uz" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Ошибка получения состояния системного шифрования.</string>
     <string lang="uz" key="INIT_SYS_ENC">Невозможно инициализировать компоненты приложения для системного шифрования.</string>
     <string lang="uz" key="INIT_RAND">Ошибка инициализации генератора случайных чисел.</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="uz" key="INIT_REGISTER">Ошибка инициализации приложения. Невозможно зарегистрировать класс Dialog.</string>
     <string lang="uz" key="INIT_RICHEDIT">Ошибка загрузки системной библиотеки Rich Edit.</string>
     <string lang="uz" key="INTRO_TITLE">Мастер создания томов VeraCrypt</string>
@@ -535,6 +539,7 @@
     <string lang="uz" key="MOUNT_BUTTON">У&ламоқ</string>
     <string lang="uz" key="NEW_VERSION_REQUIRED">Для монтирования этого тома требуется более новая версия VeraCrypt.</string>
     <string lang="uz" key="VOL_CREATION_WIZARD_NOT_FOUND">Ошибка! Не найден мастер создания томов.\n\nПроверьте, имеется ли в папке, откуда был запущен файл 'VeraCrypt.exe', файл 'VeraCrypt Format.exe'. Если его там нет, переустановите VeraCrypt или найдите на жёстком диске файл 'VeraCrypt Format.exe' и запустите его.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="uz" key="NEXT">&Далее ></string>
     <string lang="uz" key="FINALIZE">&Готово</string>
     <string lang="uz" key="INSTALL">&Установить</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="uz" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Внимание! Между системным разделом и первым разделом за ним имеется нераспределённое место. После создания скрытой операционной системы вы не должны создавать в этой нераспределённой области никаких новых разделов. В противном случае скрытая ОС не сможет загрузиться (до тех пор, пока не будут удалены такие вновь созданные разделы).</string>
     <string lang="uz" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">В данный момент этот алгоритм для шифрования системы не поддерживается.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="uz" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">В настоящий момент ключевые файлы для шифрования системы не поддерживаются.</string>
     <string lang="uz" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Внимание! VeraCrypt не может восстановить первоначальную раскладку клавиатуры. Это может привести к неправильному вводу пароля.</string>
     <string lang="uz" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Ошибка! Невозможно установить раскладку клавиатуры для VeraCrypt в стандартную американскую (US).\n\nОбратите внимание, что пароль вводится ДО загрузки Windows, когда любые раскладки клавиатуры, отличающиеся от американской, ещё недоступны. Поэтому пароль всегда должен вводиться при стандартной американской раскладке.</string>
diff --git a/Translations/Language.vi.xml b/Translations/Language.vi.xml
index ef678b6..269ba47 100644
--- a/Translations/Language.vi.xml
+++ b/Translations/Language.vi.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="vi" name="Tiếng Việt" en-name="Vietnamese" version="0.1.0" translators="Nguyễn Kim Huy" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="vi" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Hiển thị mật mã</control>
     <control lang="vi" key="IDC_TRAVEL_OPEN_EXPLORER">Mở cửa sổ &Explorer cho tập đĩa được nạp lên</control>
     <control lang="vi" key="IDC_TRAV_CACHE_PASSWORDS">&Tạm trữ mật mã trong bộ nhớ của trình điều khiển</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="vi" key="IDC_UNMOUNTALL">Th&áo Tất cả xuống</control>
     <control lang="vi" key="IDC_VOLUME_PROPERTIES">Đặc tính của Tập đĩa...</control>
     <control lang="vi" key="IDC_VOLUME_TOOLS">Công cụ của Tập đĩa...</control>
     <control lang="vi" key="IDC_WIPE_CACHE">&Tẩy Bộ tạm trữ</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="vi" key="IDD_HOTKEYS_DLG">VeraCrypt - Các khóa kích hoạt cho Nguyên cả Hệ thống</control>
     <control lang="vi" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="vi" key="IDM_CREATE_RESCUE_DISK">Cấu tạo Đĩa Cứu hộ...</control>
     <control lang="vi" key="IDM_CREATE_VOLUME">Cấu tạo Tập đĩa mới...</control>
     <control lang="vi" key="IDM_DEFAULT_KEYFILES">Tập tin khóa Mặc định...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="vi" key="IDM_ENCRYPT_SYSTEM_DEVICE">Mã hóa Phân vùng Hệ thống/Ổ đĩa...</control>
     <control lang="vi" key="IDM_FAQ">Câu hỏi thông dụng</control>
@@ -243,6 +245,7 @@
     <control lang="vi" key="IDM_UNMOUNT_VOLUME">Tháo Tập đĩa xuống</control>
     <control lang="vi" key="IDM_VERIFY_RESCUE_DISK">Kiểm tra Đĩa Cứu hộ</control>
     <control lang="vi" key="IDM_VERSION_HISTORY">Lịch sử phiên bản</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="vi" key="IDM_VOLUME_PROPERTIES">Đặc tính của Tập đĩa</control>
     <control lang="vi" key="IDM_VOLUME_WIZARD">Trợ giúp Cấu tạo Tập đĩa</control>
     <control lang="vi" key="IDM_WEBSITE">Trang Web của VeraCrypt</control>
@@ -523,6 +526,7 @@
     <string lang="vi" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Có lỗi xảy ra khi đang lấy tình trạng mã hóa hệ thống.</string>
     <string lang="vi" key="INIT_SYS_ENC">Không thể sơ khởi các bộ phận của ứng dụng cho việc mã hóa hệ thống.</string>
     <string lang="vi" key="INIT_RAND">Không sơ khởi hàm tạo ra các số ngẫu nhiên được!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="vi" key="INIT_REGISTER">Không thể sơ khởi ứng dụng được. Không đăng ký hạng Hộp thoại được.</string>
     <string lang="vi" key="INIT_RICHEDIT">Lỗi: Không nạp thư viện hệ thống Rich Edit được.</string>
     <string lang="vi" key="INTRO_TITLE">Trợ lý Cấu tạo Tập đĩa VeraCrypt</string>
@@ -535,6 +539,7 @@
     <string lang="vi" key="MOUNT_BUTTON">&Nạp lên</string>
     <string lang="vi" key="NEW_VERSION_REQUIRED">Cần có một phiên bản mới của VeraCrypt để nạp tập đĩa này lên.</string>
     <string lang="vi" key="VOL_CREATION_WIZARD_NOT_FOUND">Lỗi: Không tìm được Trợ lý Cấu tạo Tập đĩa.\n\nXin đảm bảo là tập tin 'VeraCrypt Format.exe' có trong thư mục nơi mà 'VeraCrypt.exe' được khởi chạy. Không thôi có thì xin cài đặt VeraCrypt lại, hoặc tìm 'VeraCrypt Format.exe' trong đĩa của bạn và cho nó chạy.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="vi" key="NEXT">&Kế tiếp ></string>
     <string lang="vi" key="FINALIZE">&Kết thúc</string>
     <string lang="vi" key="INSTALL">&Cài đặt</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="vi" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Cảnh báo: Có chỗ trống chưa phân phát giữa phân vùng hệ thống và phân vùng đầu tiên phía sau nó. Sau khi bạn cấu tạo hệ điều hành ẩn, bạn không được cấu tạo bất cứ phân vùng mới nào trong chỗ trống chưa phân phát đó. Không thôi, hệ điều hành ẩn sẽ không thể nào khởi động được (cho đến khi bạn xóa bỏ những phân vùng được cấu tạo như thế).</string>
     <string lang="vi" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Thuật toán này hiện không được hỗ trợ cho việc mã hóa hệ thống.</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="vi" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Các tập tin khóa hiện không được hỗ trợ cho việc mã hóa hệ thống.</string>
     <string lang="vi" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">Cảnh báo: VeraCrypt không thể hồi phục bố trí bàn phím gốc được. Chuyện này có thể làm cho bạn đánh mật mã không đúng vào.</string>
     <string lang="vi" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">Lỗi: Không thể thiết đặt bố trí bàn phím cho VeraCrypt thành bố trí bàn phím căn bản của Mỹ được.\n\nLưu ý là mật mã cần được đánh vào trong môi trường tiền khởi động (trước khi Windows bắt đầu) lúc mà bố trí bàn phím Windows không phải của Mỹ không có sẵn. Vì vậy, mật mã phải luôn luôn được đánh vào dùng bố trí bàn phím căn bản của Mỹ.</string>
diff --git a/Translations/Language.zh-cn.xml b/Translations/Language.zh-cn.xml
index 23fb8e1..30292e1 100644
--- a/Translations/Language.zh-cn.xml
+++ b/Translations/Language.zh-cn.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="zh-cn" name="简体中文" en-name="Chinese (Simplified)" version="1.0.0" translators="Barney Li" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="zh-cn" key="IDC_SHOW_PASSWORD_CHPWD_ORI">显示密码</control>
     <control lang="zh-cn" key="IDC_TRAVEL_OPEN_EXPLORER">为加载的加密卷打开资源管理器窗口(&E)</control>
     <control lang="zh-cn" key="IDC_TRAV_CACHE_PASSWORDS">在驱动内存中缓存密码(&C)</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="zh-cn" key="IDC_UNMOUNTALL">全部卸载(&S)</control>
     <control lang="zh-cn" key="IDC_VOLUME_PROPERTIES">加密卷属性(&X)...</control>
     <control lang="zh-cn" key="IDC_VOLUME_TOOLS">加密卷工具(&T)...</control>
     <control lang="zh-cn" key="IDC_WIPE_CACHE">擦除缓存(&W)</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="zh-cn" key="IDD_FAVORITE_VOLUMES">VeraCrypt - 收藏加密卷</control>
     <control lang="zh-cn" key="IDD_HOTKEYS_DLG">VeraCrypt - 系统热键</control>
     <control lang="zh-cn" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="zh-cn" key="IDM_CREATE_RESCUE_DISK">创建应急盘...</control>
     <control lang="zh-cn" key="IDM_CREATE_VOLUME">创建加密卷...</control>
     <control lang="zh-cn" key="IDM_DEFAULT_KEYFILES">默认密钥文件...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="zh-cn" key="IDM_DONATE">现在捐助...</control>
     <control lang="zh-cn" key="IDM_ENCRYPT_SYSTEM_DEVICE">加密系统分区/驱动器...</control>
     <control lang="zh-cn" key="IDM_FAQ">常见问题(联网)</control>
@@ -243,6 +245,7 @@
     <control lang="zh-cn" key="IDM_UNMOUNT_VOLUME">卸载所选加密卷</control>
     <control lang="zh-cn" key="IDM_VERIFY_RESCUE_DISK">验证应急盘</control>
     <control lang="zh-cn" key="IDM_VERSION_HISTORY">版本历史(联网)</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="zh-cn" key="IDM_VOLUME_PROPERTIES">加密卷属性</control>
     <control lang="zh-cn" key="IDM_VOLUME_WIZARD">加密卷创建向导</control>
     <control lang="zh-cn" key="IDM_WEBSITE">官方网站(联网)</control>
@@ -523,6 +526,7 @@
     <string lang="zh-cn" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">获取系统加密状态时出错。</string>
     <string lang="zh-cn" key="INIT_SYS_ENC">不能初始化用于系统加密的程序组件。</string>
     <string lang="zh-cn" key="INIT_RAND">初始化随机数据生成器失败!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="zh-cn" key="INIT_REGISTER">无法初始化应用程序。注册对话框类失败。</string>
     <string lang="zh-cn" key="INIT_RICHEDIT">错误:加载富文本编辑系统运行库失败。</string>
     <string lang="zh-cn" key="INTRO_TITLE">VeraCrypt 加密卷创建向导</string>
@@ -535,6 +539,7 @@
     <string lang="zh-cn" key="MOUNT_BUTTON">加载(&M)</string>
     <string lang="zh-cn" key="NEW_VERSION_REQUIRED">需要新版本的 VeraCrypt 来加载此加密卷。</string>
     <string lang="zh-cn" key="VOL_CREATION_WIZARD_NOT_FOUND">错误:未发现加密卷创建向导。\n\n请确认文件“VeraCrypt Format.exe”位于“VeraCrypt.exe”的目录之中。如果不是 这样,请重新安装 VeraCrypt,或在磁盘中定位“VeraCrypt Format.exe”并运行它。</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="zh-cn" key="NEXT">下一步(&N) ></string>
     <string lang="zh-cn" key="FINALIZE">完成(&F)</string>
     <string lang="zh-cn" key="INSTALL">安装(&I)</string>
@@ -1034,8 +1039,8 @@
     <string lang="zh-cn" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\n在安装 Windows 之前可以移除额外的启动分区。想要如此,请遵循以下步骤(译者注:这些步骤没有在XP安装光盘看到,请读者自悟吧,抱歉):\n\n1)启动您的 Windows 安装光盘。\n\n2)在 Windows 安装屏幕,选择 '现在安装' -> '自定义(高级)'.\n\n3)点击 '驱动器 选项'。\n\n4)选择主系统分区并选择删除这个分区,之后再确认删除(安装盘删除分区的时候会多次确认)。\n\n5)选择 '系统保留' 分区,选择 '扩展',并增加它的大小直到可以安装系统为止。\n\n6)选择 '应用' 和确认。\n\n7)安装 Windows 到 '系统保留' 分区。\n\n\n如果攻击者询问您移除额外启动分区的原因,您可以回答是因为您不希望数据泄露到未加密的启动分区。\n\n注意:您可以通过点击下面的“打印”按钮打印这些文本。如果您打印了这些文本,强烈建议您在移除额外启动分区后销毁这些纸张(否则, [...]
     <string lang="zh-cn" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">警告:在系统分区和其后的第一个分区之间存在未分配空间。在您创建隐形操作系统之后,您必须不能在此未分配空间上创建任何新的分区,否则,隐形操作系统将无法启动(直到删除了这个新创建的分区)。</string>
     <string lang="zh-cn" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">此算法当前不支持系统加密。</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="zh-cn" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">密钥文件当前不支持用在系统加密中。</string>
     <string lang="zh-cn" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">警告:VeraCrypt 不能存储原始键盘布局。这可能导致您无法正确输入密码。</string>
     <string lang="zh-cn" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">错误:不能设置 VeraCrypt 键盘布局为标准的美国键盘布局。\n\n说明:在 Windows 启动前的启动验证里需要输入密码,此时非美国标准键盘布局不可用。因此,密码必须使用标准的美国键盘布局输入。</string>
diff --git a/Translations/Language.zh-hk.xml b/Translations/Language.zh-hk.xml
index f0c3114..66c256c 100644
--- a/Translations/Language.zh-hk.xml
+++ b/Translations/Language.zh-hk.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="zh-hk" name="繁體中文" en-name="Chinese (Hong Kong)" version="0.1.0" translators="PUN Chi Ho" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="zh-hk" key="IDC_SHOW_PASSWORD_CHPWD_ORI">顯示密碼</control>
     <control lang="zh-hk" key="IDC_TRAVEL_OPEN_EXPLORER">為載入的加密卷打開資源管理器視窗(&E)</control>
     <control lang="zh-hk" key="IDC_TRAV_CACHE_PASSWORDS">在驅動記憶體中緩存密碼(&C)</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="zh-hk" key="IDC_UNMOUNTALL">全部卸載(&S)</control>
     <control lang="zh-hk" key="IDC_VOLUME_PROPERTIES">加密卷屬性(&V)...</control>
     <control lang="zh-hk" key="IDC_VOLUME_TOOLS">加密卷工具(&T)...</control>
     <control lang="zh-hk" key="IDC_WIPE_CACHE">擦除緩存(&W)</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="zh-hk" key="IDD_FAVORITE_VOLUMES">VeraCrypt - 收藏加密卷</control>
     <control lang="zh-hk" key="IDD_HOTKEYS_DLG">VeraCrypt - 系統熱鍵</control>
     <control lang="zh-hk" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="zh-hk" key="IDM_CREATE_RESCUE_DISK">創建應急盤...</control>
     <control lang="zh-hk" key="IDM_CREATE_VOLUME">創建加密卷...</control>
     <control lang="zh-hk" key="IDM_DEFAULT_KEYFILES">默認密鑰文件...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="zh-hk" key="IDM_ENCRYPT_SYSTEM_DEVICE">加密系統分區/驅動器...</control>
     <control lang="zh-hk" key="IDM_FAQ">常見問題(聯網)</control>
@@ -243,6 +245,7 @@
     <control lang="zh-hk" key="IDM_UNMOUNT_VOLUME">卸載所選加密卷</control>
     <control lang="zh-hk" key="IDM_VERIFY_RESCUE_DISK">驗證應急盤</control>
     <control lang="zh-hk" key="IDM_VERSION_HISTORY">版本歷史(聯網)</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="zh-hk" key="IDM_VOLUME_PROPERTIES">加密卷屬性</control>
     <control lang="zh-hk" key="IDM_VOLUME_WIZARD">加密卷創建嚮導</control>
     <control lang="zh-hk" key="IDM_WEBSITE">官方網站(聯網)</control>
@@ -523,6 +526,7 @@
     <string lang="zh-hk" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">獲取系統加密狀態時出錯。</string>
     <string lang="zh-hk" key="INIT_SYS_ENC">不能初始化用於系統加密的程式元件。</string>
     <string lang="zh-hk" key="INIT_RAND">初始化亂數據生成器失敗!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="zh-hk" key="INIT_REGISTER">無法初始化應用程式。註冊對話方塊類失敗。</string>
     <string lang="zh-hk" key="INIT_RICHEDIT">錯誤:載入富文本編輯系統運行庫失敗。</string>
     <string lang="zh-hk" key="INTRO_TITLE">VeraCrypt 加密卷創建嚮導</string>
@@ -535,6 +539,7 @@
     <string lang="zh-hk" key="MOUNT_BUTTON">載入(&M)</string>
     <string lang="zh-hk" key="NEW_VERSION_REQUIRED">需要新版本的 VeraCrypt 來載入此加密卷。</string>
     <string lang="zh-hk" key="VOL_CREATION_WIZARD_NOT_FOUND">錯誤:未發現加密卷創建嚮導。\n\n請確認文件“VeraCrypt Format.exe”位於“VeraCrypt.exe”的目錄之中。如果不是 這樣,請重新安裝 VeraCrypt,或在磁片中定位“VeraCrypt Format.exe”並運行它。</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="zh-hk" key="NEXT">下一步(&N) ></string>
     <string lang="zh-hk" key="FINALIZE">完成(&F)</string>
     <string lang="zh-hk" key="INSTALL">安裝(&I)</string>
@@ -1034,8 +1039,8 @@
     <string lang="zh-hk" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\n在安裝 Windows 之前可以移除額外的啟動分區。想要如此,請遵循以下步驟(譯者注:這些步驟沒有在XP安裝光碟看到,請讀者自悟吧,抱歉):\n\n1)啟動您的 Windows 安裝光碟。\n\n2)在 Windows 安裝螢幕,選擇 '現在安裝' > '自定義(高級)'.\n\n3)點擊 '驅動器 選項'。\n\n4)選擇主系統分區並選擇刪除這個分區,之後再確認刪除(安裝盤刪除分區的時候會多次確認)。\n\n5)選擇 '系統保留' 分區,選擇 '擴展',並增加它的大小直到可以安裝系統為止。\n\n6)選擇 '應用' 和確認。\n\n7)安裝 Windows 到 '系統保留' 分區。\n\n\n如果攻擊者詢問您移除額外啟動分區的原因,您可以回答是因為您不希望資料洩露到未加密的啟動分區。\n\n注意:您可以通過點擊下面的 "列印" 按鈕列印這些文本。如果您列印了這些文本,強烈建議您在移除額外啟動分區後銷毀這些紙張(否則 [...]
     <string lang="zh-hk" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">警告:在系統分區和其後的第一個分區之間存在未分配空間。在您創建隱形作業系統之後,您必須不能在此未分配空間上創建任何新的分區,否則,隱形作業系統將無法啟動(直到刪除了這個新創建的分區)。</string>
     <string lang="zh-hk" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">此演算法當前不支援系統加密。</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="zh-hk" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">密鑰檔當前不支援用在系統加密中。</string>
     <string lang="zh-hk" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">警告:VeraCrypt 不能存儲原始鍵盤佈局。這可能導致您無法正確輸入密碼。</string>
     <string lang="zh-hk" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">錯誤:不能設置 VeraCrypt 鍵盤佈局為標準的美國鍵盤佈局。\n\n說明:在 Windows 啟動前的啟動驗證裏需要輸入密碼,此時非美國標準鍵盤佈局不可用。因此,密碼必須使用標準的美國鍵盤佈局輸入。</string>
diff --git a/Translations/Language.zh-tw.xml b/Translations/Language.zh-tw.xml
index 98bbb5c..807f2cf 100644
--- a/Translations/Language.zh-tw.xml
+++ b/Translations/Language.zh-tw.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <VeraCrypt>
-  <localization prog-version="1.0f-1">
+  <localization prog-version="1.0f-2">
     <!-- Languages -->
     <language langid="zh-tw" name="繁體中文" en-name="Chinese (Taiwan)" version="0.1.0" translators="Barney Li, Simon Ma, ChangMing Hsu" />
     <!-- Fonts -->
@@ -167,11 +167,12 @@
     <control lang="zh-tw" key="IDC_SHOW_PASSWORD_CHPWD_ORI">顯示密碼</control>
     <control lang="zh-tw" key="IDC_TRAVEL_OPEN_EXPLORER">為掛載的加密區打開檔案總管視窗(&E)</control>
     <control lang="zh-tw" key="IDC_TRAV_CACHE_PASSWORDS">在動態記憶體中快取密碼(&C)</control>
-	<control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
+    <control lang="en" key="IDC_TRUECRYPT_MODE">TrueCrypt Mode</control>
     <control lang="zh-tw" key="IDC_UNMOUNTALL">全部卸載(&S)</control>
     <control lang="zh-tw" key="IDC_VOLUME_PROPERTIES">加密區內容(&V)...</control>
     <control lang="zh-tw" key="IDC_VOLUME_TOOLS">加密區工具(&T)...</control>
     <control lang="zh-tw" key="IDC_WIPE_CACHE">清除快取(&W)</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="zh-tw" key="IDD_HOTKEYS_DLG">VeraCrypt - 系統快速鍵</control>
     <control lang="zh-tw" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +202,7 @@
     <control lang="zh-tw" key="IDM_CREATE_RESCUE_DISK">建立救援磁碟...</control>
     <control lang="zh-tw" key="IDM_CREATE_VOLUME">建立新的加密區...</control>
     <control lang="zh-tw" key="IDM_DEFAULT_KEYFILES">預設金鑰檔案...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
     <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="zh-tw" key="IDM_ENCRYPT_SYSTEM_DEVICE">加密系統分割區/磁碟機...</control>
     <control lang="zh-tw" key="IDM_FAQ">常見問題(線上)</control>
@@ -243,6 +245,7 @@
     <control lang="zh-tw" key="IDM_UNMOUNT_VOLUME">卸載選擇的加密區</control>
     <control lang="zh-tw" key="IDM_VERIFY_RESCUE_DISK">驗證救援磁碟</control>
     <control lang="zh-tw" key="IDM_VERSION_HISTORY">版本歷史(線上)</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="zh-tw" key="IDM_VOLUME_PROPERTIES">加密區內容</control>
     <control lang="zh-tw" key="IDM_VOLUME_WIZARD">加密區建立精靈</control>
     <control lang="zh-tw" key="IDM_WEBSITE">官方網站(線上)</control>
@@ -523,6 +526,7 @@
     <string lang="zh-tw" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">取得系統加密狀態時出錯。</string>
     <string lang="zh-tw" key="INIT_SYS_ENC">不能初始化用於系統加密的應用程式元件。</string>
     <string lang="zh-tw" key="INIT_RAND">初始化亂數資料產生器失敗!</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="zh-tw" key="INIT_REGISTER">無法初始化應用程式。註冊對話方塊類別失敗。</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="zh-tw" key="INTRO_TITLE">VeraCrypt 加密區建立精靈</string>
@@ -535,6 +539,7 @@
     <string lang="zh-tw" key="MOUNT_BUTTON">掛載(&M)</string>
     <string lang="zh-tw" key="NEW_VERSION_REQUIRED">需要新版本的 VeraCrypt 來掛載此加密區。</string>
     <string lang="zh-tw" key="VOL_CREATION_WIZARD_NOT_FOUND">錯誤:未發現加密區建立精靈。\n\n請確定檔案 "VeraCrypt Format.exe" 位於 "VeraCrypt.exe" 的目錄之中。如果不是這樣,請重新安裝 VeraCrypt,或在磁碟中確定 "VeraCrypt Format.exe" 的位置並執行它。</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="zh-tw" key="NEXT">下一步(&N) ></string>
     <string lang="zh-tw" key="FINALIZE">完成(&F)</string>
     <string lang="zh-tw" key="INSTALL">安裝(&I)</string>
@@ -1034,8 +1039,8 @@
     <string lang="en" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nThe extra boot partition can be removed before installing Windows. To do so, follow these steps:\n\n1) Boot your Windows installation disc.\n\n2) In the Windows installer screen, click 'Install now' > 'Custom (advanced)'.\n\n3) Click 'Drive Options'.\n\n4) Select the main system partition and delete it by clicking 'Delete' and 'OK'.\n\n5) Select the 'System Reserved' partition, click 'Extend', and increase its siz [...]
     <string lang="en" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">Warning: There is unallocated space between the system partition and the first partition behind it. After you create the hidden operating system, you must not create any new partitions in that unallocated space. Otherwise, the hidden operating system will be impossible to boot (until you delete such newly created partitions).</string>
     <string lang="zh-tw" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">此演算法目前不支援系統加密。</string>
-	<string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
-	<string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">This algorithm is not supported for TrueCrypt mode.</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
     <string lang="en" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Keyfiles are currently not supported for system encryption.</string>
     <string lang="zh-tw" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">>警告:VeraCrypt 不能回復原始鍵盤配置。這可能導致您輸入不正確的密碼。</string>
     <string lang="zh-tw" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">錯誤:不能設定 VeraCrypt 鍵盤配置為標準美式鍵盤配置。\n\n要注意在啟動前置環境(Windows 啟動前)需要輸入密碼,這時非標準美式鍵盤配置是無法使用的。因此,密碼必須總是使用標準美式鍵盤配置輸入。</string>
diff --git a/src/Boot/Windows/BootCommon.h b/src/Boot/Windows/BootCommon.h
index 9c7e4da..358d52e 100644
--- a/src/Boot/Windows/BootCommon.h
+++ b/src/Boot/Windows/BootCommon.h
@@ -13,7 +13,7 @@
 #include "BootDefs.h"
 
 // The user will be advised to upgrade the rescue disk if upgrading from the following or any previous version
-#define TC_RESCUE_DISK_UPGRADE_NOTICE_MAX_VERSION 0x010e
+#define TC_RESCUE_DISK_UPGRADE_NOTICE_MAX_VERSION 0x0110
 
 #define TC_BOOT_LOADER_AREA_SIZE (TC_BOOT_LOADER_AREA_SECTOR_COUNT * TC_SECTOR_SIZE_BIOS)
 
diff --git a/src/Boot/Windows/BootMain.cpp b/src/Boot/Windows/BootMain.cpp
index 9f6d0d2..b29d3ff 100644
--- a/src/Boot/Windows/BootMain.cpp
+++ b/src/Boot/Windows/BootMain.cpp
@@ -327,9 +327,13 @@ static bool MountVolume (byte drive, byte &exitKey, bool skipNormal, bool skipHi
 		if (exitKey != TC_BIOS_KEY_ENTER)
 			return false;
 
+		Print ("Verifying password...");
+
 		if (OpenVolume (BootDrive, bootArguments->BootPassword, &BootCryptoInfo, &bootArguments->HeaderSaltCrc32, skipNormal, skipHidden))
+		{
+			Print ("OK\r\n");
 			break;
-
+		}
 		if (GetShiftFlags() & TC_BIOS_SHIFTMASK_CAPSLOCK)
 			Print ("Warning: Caps Lock is on.\r\n");
 
diff --git a/src/Build/Resources/MacOSX/Info.plist.xml b/src/Build/Resources/MacOSX/Info.plist.xml
index 2255770..52e72db 100644
--- a/src/Build/Resources/MacOSX/Info.plist.xml
+++ b/src/Build/Resources/MacOSX/Info.plist.xml
@@ -27,7 +27,7 @@
 	<string>TRUE</string>
 
 	<key>CFBundleVersion</key>
-	<string>0</string>
+	<string>1.6.3</string>
 
 	<key>CFBundleShortVersionString</key>
 	<string>_VERSION_</string>
@@ -36,7 +36,7 @@
 	<string>VeraCrypt _VERSION_</string>
 
 	<key>LSRequiresCarbon</key>
-	<true/>
+	<false/>
 
 	<key>CSResourcesFileMapped</key>
 	<true/>
diff --git a/src/Common/BaseCom.cpp b/src/Common/BaseCom.cpp
index 349edab..365fa29 100644
--- a/src/Common/BaseCom.cpp
+++ b/src/Common/BaseCom.cpp
@@ -43,12 +43,27 @@ BOOL ComGetInstanceBase (HWND hWnd, REFCLSID clsid, REFIID iid, void **tcServer)
 	BOOL r;
 
 	if (IsUacSupported ())
-		r = CreateElevatedComObject (hWnd, clsid, iid, tcServer) == S_OK;
+	{
+		while (true)
+		{
+			r = CreateElevatedComObject (hWnd, clsid, iid, tcServer) == S_OK;
+			if (r)
+				break;
+			else
+			{
+				if (IDRETRY == ErrorRetryCancel ("UAC_INIT_ERROR", hWnd))
+					continue;
+				else
+					break;
+			}
+		}
+	}
 	else
+	{
 		r = CoCreateInstance (clsid, NULL, CLSCTX_LOCAL_SERVER, iid, tcServer) == S_OK;
-
-	if (!r)
-		Error ("UAC_INIT_ERROR", hWnd);
+		if (!r)
+			Error ("UAC_INIT_ERROR", hWnd);
+	}
 
 	return r;
 }
@@ -119,6 +134,7 @@ DWORD BaseCom::ReadWriteFile (BOOL write, BOOL device, BSTR filePath, BSTR *buff
 	try
 	{
 		auto_ptr <File> file (device ? new Device (string (szFilePathA.m_psz), !write) : new File (string (szFilePathA.m_psz), !write));
+		file->CheckOpened ();
 		file->SeekAt (offset);
 
 		if (write)
diff --git a/src/Common/BootEncryption.cpp b/src/Common/BootEncryption.cpp
index 43cee06..ae57dc3 100644
--- a/src/Common/BootEncryption.cpp
+++ b/src/Common/BootEncryption.cpp
@@ -75,8 +75,28 @@ namespace VeraCrypt
 		static void CopyFile (const string &sourceFile, const string &destinationFile)
 		{
 			Elevate();
+			DWORD result;
+			CComBSTR sourceFileBstr, destinationFileBstr;
+			BSTR bstr = A2WBSTR(sourceFile.c_str());
+			if (bstr)
+			{
+				sourceFileBstr.Attach (bstr);
 
-			DWORD result = ElevatedComInstance->CopyFile (CComBSTR (sourceFile.c_str()), CComBSTR (destinationFile.c_str()));
+				bstr = A2WBSTR(destinationFile.c_str());
+				if (bstr)
+				{
+					destinationFileBstr.Attach (bstr);
+					result = ElevatedComInstance->CopyFile (sourceFileBstr, destinationFileBstr);
+				}
+				else
+				{
+					result = ERROR_OUTOFMEMORY;
+				}
+			}
+			else
+			{
+				result = ERROR_OUTOFMEMORY;
+			}
 
 			if (result != ERROR_SUCCESS)
 			{
@@ -88,8 +108,18 @@ namespace VeraCrypt
 		static void DeleteFile (const string &file)
 		{
 			Elevate();
-
-			DWORD result = ElevatedComInstance->DeleteFile (CComBSTR (file.c_str()));
+			CComBSTR fileBstr;
+			DWORD result;
+			BSTR bstr = A2WBSTR(file.c_str());
+			if (bstr)
+			{
+				fileBstr.Attach (bstr);
+				result = ElevatedComInstance->DeleteFile (fileBstr);
+			}
+			else
+			{
+				result = ERROR_OUTOFMEMORY;
+			}
 
 			if (result != ERROR_SUCCESS)
 			{
@@ -102,10 +132,20 @@ namespace VeraCrypt
 		{
 			Elevate();
 
-			CComBSTR bufferBstr;
+			DWORD result;
+			CComBSTR bufferBstr, fileBstr;
 			if (bufferBstr.AppendBytes ((const char *) buffer, size) != S_OK)
 				throw ParameterIncorrect (SRC_POS);
-			DWORD result = ElevatedComInstance->ReadWriteFile (write, device, CComBSTR (filePath.c_str()), &bufferBstr, offset, size, sizeDone);
+			BSTR bstr = A2WBSTR(filePath.c_str());
+			if (bstr)
+			{
+				fileBstr.Attach (bstr);
+				result = ElevatedComInstance->ReadWriteFile (write, device, fileBstr, &bufferBstr, offset, size, sizeDone);
+			}
+			else
+			{
+				result = ERROR_OUTOFMEMORY;
+			}
 
 			if (result != ERROR_SUCCESS)
 			{
@@ -127,8 +167,29 @@ namespace VeraCrypt
 		static void WriteLocalMachineRegistryDwordValue (char *keyPath, char *valueName, DWORD value)
 		{
 			Elevate();
+			DWORD result;
+			CComBSTR keyPathBstr, valueNameBstr;
+			BSTR bstr = A2WBSTR(keyPath);
+			if (bstr)
+			{
+				keyPathBstr.Attach (bstr);
 
-			DWORD result = ElevatedComInstance->WriteLocalMachineRegistryDwordValue (CComBSTR (keyPath), CComBSTR (valueName), value);
+				bstr = A2WBSTR(valueName);
+				if (bstr)
+				{
+					valueNameBstr.Attach (bstr);
+
+					result = ElevatedComInstance->WriteLocalMachineRegistryDwordValue (keyPathBstr, valueNameBstr, value);
+				}
+				else
+				{
+					result = ERROR_OUTOFMEMORY;
+				}
+			}
+			else
+			{
+				result = ERROR_OUTOFMEMORY;
+			}
 		
 			if (result != ERROR_SUCCESS)
 			{
@@ -233,26 +294,27 @@ namespace VeraCrypt
 #endif // SETUP
 
 
-	File::File (string path, bool readOnly, bool create) : Elevated (false), FileOpen (false)
+	File::File (string path, bool readOnly, bool create) : Elevated (false), FileOpen (false), LastError(0)
 	{
 		Handle = CreateFile (path.c_str(),
 			readOnly ? GENERIC_READ : GENERIC_READ | GENERIC_WRITE,
 			FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, create ? CREATE_ALWAYS : OPEN_EXISTING,
 			FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_WRITE_THROUGH, NULL);
 
-		try
+		if (Handle != INVALID_HANDLE_VALUE)
 		{
-			throw_sys_if (Handle == INVALID_HANDLE_VALUE);
+			FileOpen = true;
 		}
-		catch (SystemException &)
+		else 
 		{
-			if (GetLastError() == ERROR_ACCESS_DENIED && IsUacSupported())
+			LastError = GetLastError();
+			if (LastError == ERROR_ACCESS_DENIED && IsUacSupported())
+			{
 				Elevated = true;
-			else
-				throw;
+				FileOpen = true;
+			}
 		}
 
-		FileOpen = true;
 		FilePointerPosition = 0;
 		IsDevice = false;
 		Path = path;
@@ -260,19 +322,25 @@ namespace VeraCrypt
 
 	void File::Close ()
 	{
-		if (FileOpen)
+		if (Handle != INVALID_HANDLE_VALUE)
 		{
-			if (!Elevated)
-				CloseHandle (Handle);
-
-			FileOpen = false;
+			CloseHandle (Handle);
+			Handle = INVALID_HANDLE_VALUE;
 		}
+
+		FileOpen = false;
 	}
 
 	DWORD File::Read (byte *buffer, DWORD size)
 	{
 		DWORD bytesRead;
 
+		if (!FileOpen)
+		{
+			SetLastError (LastError);
+			throw SystemException ();
+		}
+
 		if (Elevated)
 		{
 			DWORD bytesRead;
@@ -288,6 +356,12 @@ namespace VeraCrypt
 
 	void File::SeekAt (int64 position)
 	{
+		if (!FileOpen)
+		{
+			SetLastError (LastError);
+			throw SystemException ();
+		}
+
 		FilePointerPosition = position;
 
 		if (!Elevated)
@@ -302,6 +376,12 @@ namespace VeraCrypt
 	{
 		DWORD bytesWritten;
 
+		if (!FileOpen)
+		{
+			SetLastError (LastError);
+			throw SystemException ();
+		}
+
 		try
 		{
 			if (Elevated)
@@ -349,19 +429,20 @@ namespace VeraCrypt
 			FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
 			FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_WRITE_THROUGH, NULL);
 
-		try
+		if (Handle != INVALID_HANDLE_VALUE)
 		{
-			throw_sys_if (Handle == INVALID_HANDLE_VALUE);
+			FileOpen = true;
 		}
-		catch (SystemException &)
+		else 
 		{
-			if (GetLastError() == ERROR_ACCESS_DENIED && IsUacSupported())
+			LastError = GetLastError ();
+			if (LastError == ERROR_ACCESS_DENIED && IsUacSupported())
+			{
 				Elevated = true;
-			else
-				throw;
+				FileOpen = true;
+			}
 		}
 
-		FileOpen = true;
 		FilePointerPosition = 0;
 		IsDevice = true;
 		Path = path;
@@ -393,7 +474,7 @@ namespace VeraCrypt
 	{
 		if (RescueIsoImage)
 			delete[] RescueIsoImage;
-
+				
 		Elevator::Release();
 	}
 
@@ -635,7 +716,7 @@ namespace VeraCrypt
 			stringstream partPath;
 			partPath << "\\Device\\Harddisk" << driveNumber << "\\Partition" << partNumber;
 
-			DISK_PARTITION_INFO_STRUCT diskPartInfo;
+			DISK_PARTITION_INFO_STRUCT diskPartInfo = {0};
 			StringCbPrintfW (diskPartInfo.deviceName, sizeof (diskPartInfo.deviceName), L"%hs", partPath.str().c_str());
 
 			try
@@ -647,50 +728,60 @@ namespace VeraCrypt
 				continue;
 			}
 
-			Partition part;
-			part.DevicePath = partPath.str();
-			part.Number = partNumber;
-			part.Info = diskPartInfo.partInfo;
-			part.IsGPT = diskPartInfo.IsGPT;
-
-			// Mount point
-			wstringstream ws;
-			ws << partPath.str().c_str();
-			int driveNumber = GetDiskDeviceDriveLetter ((wchar_t *) ws.str().c_str());
-
-			if (driveNumber >= 0)
+			if (	(diskPartInfo.IsGPT == TRUE || diskPartInfo.IsGPT == FALSE)
+				&&	(diskPartInfo.IsDynamic == TRUE || diskPartInfo.IsDynamic == FALSE)
+				&&	(diskPartInfo.partInfo.BootIndicator == TRUE || diskPartInfo.partInfo.BootIndicator == FALSE)
+				&&	(diskPartInfo.partInfo.RecognizedPartition == TRUE || diskPartInfo.partInfo.RecognizedPartition == FALSE)
+				&&	(diskPartInfo.partInfo.RewritePartition == TRUE || diskPartInfo.partInfo.RewritePartition == FALSE)
+				&&	(diskPartInfo.partInfo.StartingOffset.QuadPart >= 0)
+				&&	(diskPartInfo.partInfo.PartitionLength.QuadPart >= 0)
+				)
 			{
-				part.MountPoint += (char) (driveNumber + 'A');
-				part.MountPoint += ":";
-			}
+				Partition part;
+				part.DevicePath = partPath.str();
+				part.Number = partNumber;
+				part.Info = diskPartInfo.partInfo;
+				part.IsGPT = diskPartInfo.IsGPT;
+
+				// Mount point
+				wstringstream ws;
+				ws << partPath.str().c_str();
+				int driveNumber = GetDiskDeviceDriveLetter ((wchar_t *) ws.str().c_str());
+
+				if (driveNumber >= 0)
+				{
+					part.MountPoint += (char) (driveNumber + 'A');
+					part.MountPoint += ":";
+				}
 
-			// Volume ID
-			wchar_t volumePath[TC_MAX_PATH];
-			if (ResolveSymbolicLink ((wchar_t *) ws.str().c_str(), volumePath, sizeof(volumePath)))
-			{
-				wchar_t volumeName[TC_MAX_PATH];
-				HANDLE fh = FindFirstVolumeW (volumeName, array_capacity (volumeName));
-				if (fh != INVALID_HANDLE_VALUE)
+				// Volume ID
+				wchar_t volumePath[TC_MAX_PATH];
+				if (ResolveSymbolicLink ((wchar_t *) ws.str().c_str(), volumePath, sizeof(volumePath)))
 				{
-					do
+					wchar_t volumeName[TC_MAX_PATH];
+					HANDLE fh = FindFirstVolumeW (volumeName, array_capacity (volumeName));
+					if (fh != INVALID_HANDLE_VALUE)
 					{
-						wstring volumeNameStr = volumeName;
-						wchar_t devicePath[TC_MAX_PATH];
-
-						if (QueryDosDeviceW (volumeNameStr.substr (4, volumeNameStr.size() - 1 - 4).c_str(), devicePath, array_capacity (devicePath)) != 0
-							&& wcscmp (volumePath, devicePath) == 0)
+						do
 						{
-							part.VolumeNameId = volumeName;
-							break;
-						}
+							wstring volumeNameStr = volumeName;
+							wchar_t devicePath[TC_MAX_PATH];
 
-					} while (FindNextVolumeW (fh, volumeName, array_capacity (volumeName)));
+							if (QueryDosDeviceW (volumeNameStr.substr (4, volumeNameStr.size() - 1 - 4).c_str(), devicePath, array_capacity (devicePath)) != 0
+								&& wcscmp (volumePath, devicePath) == 0)
+							{
+								part.VolumeNameId = volumeName;
+								break;
+							}
+
+						} while (FindNextVolumeW (fh, volumeName, array_capacity (volumeName)));
 
-					FindVolumeClose (fh);
+						FindVolumeClose (fh);
+					}
 				}
-			}
 
-			partList.push_back (part);
+				partList.push_back (part);
+			}
 		}
 
 		return partList;
@@ -793,6 +884,7 @@ namespace VeraCrypt
 	bool BootEncryption::SystemDriveContainsPartitionType (byte type)
 	{
 		Device device (GetSystemDriveConfiguration().DevicePath, true);
+		device.CheckOpened ();
 
 		byte mbrBuf[TC_SECTOR_SIZE_BIOS];
 		device.SeekAt (0);
@@ -1103,6 +1195,7 @@ namespace VeraCrypt
 		if (hiddenOSCreation)
 		{
 			Device device (GetSystemDriveConfiguration().DevicePath);
+			device.CheckOpened ();
 			byte headerSector[TC_SECTOR_SIZE_BIOS];
 
 			device.SeekAt (HiddenOSCandidatePartition.Info.StartingOffset.QuadPart + HiddenOSCandidatePartition.Info.PartitionLength.QuadPart - TC_VOLUME_HEADER_GROUP_SIZE + TC_VOLUME_HEADER_EFFECTIVE_SIZE);
@@ -1191,6 +1284,7 @@ namespace VeraCrypt
 	void BootEncryption::WriteBootSectorConfig (const byte newConfig[])
 	{
 		Device device (GetSystemDriveConfiguration().DevicePath);
+		device.CheckOpened ();
 		byte mbr[TC_SECTOR_SIZE_BIOS];
 
 		device.SeekAt (0);
@@ -1213,6 +1307,7 @@ namespace VeraCrypt
 	void BootEncryption::WriteBootSectorUserConfig (byte userConfig, const string &customUserMessage)
 	{
 		Device device (GetSystemDriveConfiguration().DevicePath);
+		device.CheckOpened ();
 		byte mbr[TC_SECTOR_SIZE_BIOS];
 
 		device.SeekAt (0);
@@ -1288,7 +1383,12 @@ namespace VeraCrypt
 		request.WipeAlgorithm = wipeAlgorithm;
 		
 		if (Randinit() != ERR_SUCCESS)
-			throw ParameterIncorrect (SRC_POS);
+		{
+			if (CryptoAPILastError == ERROR_SUCCESS)
+				throw RandInitFailed (SRC_POS, GetLastError ());
+			else
+				throw CryptoApiFailed (SRC_POS, CryptoAPILastError);
+		}
 
 		/* force the display of the random enriching dialog */
 		SetRandomPoolEnrichedByUserStatus (FALSE);
@@ -1326,10 +1426,19 @@ namespace VeraCrypt
 
 	void BootEncryption::WipeHiddenOSCreationConfig ()
 	{
-		if (IsHiddenOSRunning() || Randinit() != ERR_SUCCESS)
+		if (IsHiddenOSRunning())
 			throw ParameterIncorrect (SRC_POS);
 
+		if (Randinit() != ERR_SUCCESS)
+		{
+			if (CryptoAPILastError == ERROR_SUCCESS)
+				throw RandInitFailed (SRC_POS, GetLastError ());
+			else
+				throw CryptoApiFailed (SRC_POS, CryptoAPILastError);
+		}
+
 		Device device (GetSystemDriveConfiguration().DevicePath);
+		device.CheckOpened();
 		byte mbr[TC_SECTOR_SIZE_BIOS];
 
 		device.SeekAt (0);
@@ -1388,6 +1497,7 @@ namespace VeraCrypt
 
 		// Write MBR
 		Device device (GetSystemDriveConfiguration().DevicePath);
+		device.CheckOpened ();
 		byte mbr[TC_SECTOR_SIZE_BIOS];
 
 		device.SeekAt (0);
@@ -1542,6 +1652,7 @@ namespace VeraCrypt
 		else
 		{
 			Device bootDevice (GetSystemDriveConfiguration().DevicePath, true);
+			bootDevice.CheckOpened ();
 			bootDevice.SeekAt (TC_BOOT_VOLUME_HEADER_SECTOR_OFFSET);
 			bootDevice.Read (image + TC_CD_BOOTSECTOR_OFFSET + TC_BOOT_VOLUME_HEADER_SECTOR_OFFSET, TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE);
 		}
@@ -1550,6 +1661,7 @@ namespace VeraCrypt
 		try
 		{
 			File sysBakFile (GetSystemLoaderBackupPath(), true);
+			sysBakFile.CheckOpened ();
 			sysBakFile.Read (image + TC_CD_BOOTSECTOR_OFFSET + TC_ORIG_BOOT_LOADER_BACKUP_SECTOR_OFFSET, TC_BOOT_LOADER_AREA_SIZE);
 			
 			image[TC_CD_BOOTSECTOR_OFFSET + TC_BOOT_SECTOR_CONFIG_OFFSET] |= TC_BOOT_CFG_FLAG_RESCUE_DISK_ORIG_SYS_LOADER;
@@ -1605,6 +1717,7 @@ namespace VeraCrypt
 				path[0] = drive;
 
 				Device driveDevice (path, true);
+				driveDevice.CheckOpened ();
 				size_t verifiedSectorCount = (TC_CD_BOOTSECTOR_OFFSET + TC_ORIG_BOOT_LOADER_BACKUP_SECTOR_OFFSET + TC_BOOT_LOADER_AREA_SIZE) / 2048;
 				Buffer buffer ((verifiedSectorCount + 1) * 2048);
 
@@ -1638,7 +1751,8 @@ namespace VeraCrypt
 
 		// Initial rescue disk assumes encryption of the drive has been completed (EncryptedAreaLength == volumeSize)
 		memcpy (RescueVolumeHeader, VolumeHeader, sizeof (RescueVolumeHeader));
-		ReadVolumeHeader (TRUE, (char *) RescueVolumeHeader, password, pkcs5, FALSE, NULL, cryptoInfo);
+		if (0 != ReadVolumeHeader (TRUE, (char *) RescueVolumeHeader, password, pkcs5, FALSE, NULL, cryptoInfo))
+			throw ParameterIncorrect (SRC_POS);
 
 		DecryptBuffer (RescueVolumeHeader + HEADER_ENCRYPTED_DATA_OFFSET, HEADER_ENCRYPTED_DATA_SIZE, cryptoInfo);
 
@@ -1666,6 +1780,7 @@ namespace VeraCrypt
 			throw ParameterIncorrect (SRC_POS);
 
 		Device device (GetSystemDriveConfiguration().DevicePath);
+		device.CheckOpened ();
 
 		device.SeekAt (TC_BOOT_VOLUME_HEADER_SECTOR_OFFSET);
 		device.Write ((byte *) VolumeHeader, sizeof (VolumeHeader));
@@ -1697,7 +1812,7 @@ namespace VeraCrypt
 	void BootEncryption::BackupSystemLoader ()
 	{
 		Device device (GetSystemDriveConfiguration().DevicePath, true);
-	
+		device.CheckOpened ();
 		byte bootLoaderBuf[TC_BOOT_LOADER_AREA_SECTOR_COUNT * TC_SECTOR_SIZE_BIOS];
 
 		device.SeekAt (0);
@@ -1724,11 +1839,12 @@ namespace VeraCrypt
 		byte bootLoaderBuf[TC_BOOT_LOADER_AREA_SECTOR_COUNT * TC_SECTOR_SIZE_BIOS];
 
 		File backupFile (GetSystemLoaderBackupPath(), true);
-		
+		backupFile.CheckOpened();
 		if (backupFile.Read (bootLoaderBuf, sizeof (bootLoaderBuf)) != sizeof (bootLoaderBuf))
 			throw ParameterIncorrect (SRC_POS);
 
 		Device device (GetSystemDriveConfiguration().DevicePath);
+		device.CheckOpened ();
 
 		// Preserve current partition table
 		byte mbr[TC_SECTOR_SIZE_BIOS];
@@ -2065,6 +2181,7 @@ namespace VeraCrypt
 		{
 			// Verify CRC of header salt
 			Device device (config.DevicePath, true);
+			device.CheckOpened ();
 			byte header[TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE];
 
 			device.SeekAt (TC_BOOT_VOLUME_HEADER_SECTOR_OFFSET);
@@ -2128,6 +2245,7 @@ namespace VeraCrypt
 
 		char header[TC_BOOT_ENCRYPTION_VOLUME_HEADER_SIZE];
 		Device device (config.DevicePath);
+		device.CheckOpened ();
 
 		// Only one algorithm is currently supported
 		if (pkcs5 != 0)
@@ -2175,7 +2293,13 @@ namespace VeraCrypt
 			RandSetHashFunction (pkcs5);
 		}
 
-		throw_sys_if (Randinit () != 0);
+		if (Randinit() != 0)
+		{
+			if (CryptoAPILastError == ERROR_SUCCESS)
+				throw RandInitFailed (SRC_POS, GetLastError ());
+			else
+				throw CryptoApiFailed (SRC_POS, CryptoAPILastError);
+		}
 		finally_do ({ RandStop (FALSE); });
 
 		/* force the display of the random enriching dialog */
@@ -2335,6 +2459,7 @@ namespace VeraCrypt
 			Buffer sector (geometry.BytesPerSector);
 
 			Device device (config.DevicePath);
+			device.CheckOpened ();
 
 			try
 			{
diff --git a/src/Common/BootEncryption.h b/src/Common/BootEncryption.h
index ccd68bc..3665a9b 100644
--- a/src/Common/BootEncryption.h
+++ b/src/Common/BootEncryption.h
@@ -22,10 +22,11 @@ namespace VeraCrypt
 	class File
 	{
 	public:
-		File () : Elevated (false), FileOpen (false), FilePointerPosition(0), Handle(NULL), IsDevice(false) { }
-		File (string path, bool readOnly = false, bool create = false);
-		~File () { Close(); }
+		File () : Elevated (false), FileOpen (false), FilePointerPosition(0), Handle(INVALID_HANDLE_VALUE), IsDevice(false), LastError(0) { }
+		File (string path,bool readOnly = false, bool create = false);
+		virtual ~File () { Close(); }
 
+		void CheckOpened () { if (!FileOpen) { SetLastError (LastError); throw SystemException ();} }
 		void Close ();
 		DWORD Read (byte *buffer, DWORD size);
 		void Write (byte *buffer, DWORD size);
@@ -38,13 +39,15 @@ namespace VeraCrypt
 		HANDLE Handle;
 		bool IsDevice;
 		string Path;
+		DWORD LastError;
 	};
 
 
 	class Device : public File
 	{
 	public:
-		Device (string path, bool readOnly = false);
+		Device (string path,bool readOnly = false);
+		virtual ~Device () {}
 	};
 
 
diff --git a/src/Common/Cmdline.c b/src/Common/Cmdline.c
index f1f9a8f..a455b98 100644
--- a/src/Common/Cmdline.c
+++ b/src/Common/Cmdline.c
@@ -27,8 +27,8 @@
    not. - see DialogProc */
 BOOL CALLBACK CommandHelpDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	if (lParam);		/* remove warning */
-	if (wParam);		/* remove warning */
+	UNREFERENCED_PARAMETER (lParam);		/* remove warning */
+	UNREFERENCED_PARAMETER (wParam);		/* remove warning */
 
 	switch (msg)
 	{
diff --git a/src/Common/Combo.c b/src/Common/Combo.c
index 850cd02..cc1d5bb 100644
--- a/src/Common/Combo.c
+++ b/src/Common/Combo.c
@@ -157,7 +157,7 @@ void LoadCombo (HWND hComboBox)
 void DumpCombo (HWND hComboBox, int bClear)
 {
 	FILE *f;
-	int i, nComboIdx[SIZEOF_MRU_LIST];
+	int i, nComboIdx[SIZEOF_MRU_LIST] = {0};
 
 	if (bClear)
 	{
diff --git a/src/Common/Common.rc b/src/Common/Common.rc
index d497b35..64827c9 100644
--- a/src/Common/Common.rc
+++ b/src/Common/Common.rc
@@ -310,12 +310,11 @@ BEGIN
 END
 
 IDD_STATIC_MODAL_WAIT_DLG DIALOGEX 0, 0, 292, 74
-STYLE DS_SYSMODAL | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION
-EXSTYLE WS_EX_TOPMOST
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION
 CAPTION "VeraCrypt"
 FONT 8, "MS Shell Dlg", 0, 0, 0x0
 BEGIN
-    CTEXT           "Please wait...\nThis process may take a long time and VeraCrypt may become unresponsive.",IDT_STATIC_MODAL_WAIT_DLG_INFO,9,11,274,33
+    CTEXT           "Please wait...\nThis process may take a long time and VeraCrypt may seem unresponsive.",IDT_STATIC_MODAL_WAIT_DLG_INFO,9,11,274,33
     CONTROL         "",IDC_WAIT_PROGRESS_BAR,"msctls_progress32",WS_BORDER,7,49,278,14
 END
 
diff --git a/src/Common/Dictionary.c b/src/Common/Dictionary.c
index 382e6b7..d6203e6 100644
--- a/src/Common/Dictionary.c
+++ b/src/Common/Dictionary.c
@@ -22,11 +22,15 @@ static size_t DataPoolSize = 0;
 
 void AddDictionaryEntry (char *key, int intKey, void *value)
 {
-	if (key)
-		StringKeyMap[key] = value;
+	try
+	{
+		if (key)
+			StringKeyMap[key] = value;
 
-	if (intKey != 0)
-		IntKeyMap[intKey] = value;
+		if (intKey != 0)
+			IntKeyMap[intKey] = value;
+	}
+	catch (exception&) {}
 }
 
 
diff --git a/src/Common/Dlgcode.c b/src/Common/Dlgcode.c
index a6354fd..94b1fc0 100644
--- a/src/Common/Dlgcode.c
+++ b/src/Common/Dlgcode.c
@@ -180,6 +180,8 @@ DWORD SystemFileSelectorCallerThreadId;
 #define RANDPOOL_DISPLAY_ROWS 16
 #define RANDPOOL_DISPLAY_COLUMNS 20
 
+HMODULE hRichEditDll = NULL;
+
 /* Windows dialog class */
 #define WINDOWS_DIALOG_CLASS "#32770"
 
@@ -459,16 +461,32 @@ int RemoveFakeDosName (char *lpszDiskFile, char *lpszDosDevice)
 }
 
 
-void AbortProcess (char *stringId)
+void AbortProcessDirect (wchar_t *abortMsg)
 {
 	// Note that this function also causes localcleanup() to be called (see atexit())
 	MessageBeep (MB_ICONEXCLAMATION);
-	MessageBoxW (NULL, GetString (stringId), lpszTitle, ICON_HAND);
+	MessageBoxW (NULL, abortMsg, lpszTitle, ICON_HAND);
+	if (hRichEditDll)
+	{
+		FreeLibrary (hRichEditDll);
+		hRichEditDll = NULL;
+	}
 	exit (1);
 }
 
+void AbortProcess (char *stringId)
+{
+	// Note that this function also causes localcleanup() to be called (see atexit())
+	AbortProcessDirect (GetString (stringId));
+}
+
 void AbortProcessSilent (void)
 {
+	if (hRichEditDll)
+	{
+		FreeLibrary (hRichEditDll);
+		hRichEditDll = NULL;
+	}
 	// Note that this function also causes localcleanup() to be called (see atexit())
 	exit (1);
 }
@@ -2527,7 +2545,7 @@ void InitApp (HINSTANCE hInstance, char *lpszCommandLine)
 	else
 		StringCbCopyA(dllPath, sizeof(dllPath), "c:\\Windows\\System32\\Riched20.dll");
 	// Required for RichEdit text fields to work
-	if (LoadLibrary(dllPath) == NULL)
+	if ((hRichEditDll = LoadLibrary(dllPath)) == NULL)
 	{
 		// This error is fatal e.g. because legal notices could not be displayed
 		handleWin32Error (NULL);
@@ -2544,11 +2562,25 @@ void InitApp (HINSTANCE hInstance, char *lpszCommandLine)
 	if (!EncryptionThreadPoolStart (ReadEncryptionThreadPoolFreeCpuCountLimit()))
 	{
 		handleWin32Error (NULL);
+		if (hRichEditDll)
+		{
+			FreeLibrary (hRichEditDll);
+			hRichEditDll = NULL;
+		}
 		exit (1);
 	}
 #endif
 }
 
+void FinalizeApp (void)
+{
+	if (hRichEditDll)
+	{
+		FreeLibrary (hRichEditDll);
+		hRichEditDll = NULL;
+	}
+}
+
 void InitHelpFileName (void)
 {
 	char *lpszTmp;
@@ -2590,9 +2622,13 @@ BOOL OpenDevice (const char *lpszPath, OPEN_TEST_STRUCT *driver, BOOL detectFile
 {
 	DWORD dwResult;
 	BOOL bResult;
+	wchar_t wszFileName[TC_MAX_PATH];
 
-	StringCbCopyA ((char *) &driver->wszFileName[0], sizeof(driver->wszFileName), lpszPath);
-	ToUNICODE ((char *) &driver->wszFileName[0], sizeof(driver->wszFileName));
+	StringCbCopyA ((char *) &wszFileName[0], sizeof(wszFileName), lpszPath);
+	ToUNICODE ((char *) &wszFileName[0], sizeof(wszFileName));
+
+	memset (driver, 0, sizeof (OPEN_TEST_STRUCT));
+	memcpy (driver->wszFileName, wszFileName, sizeof (wszFileName));
 
 	driver->bDetectTCBootLoader = FALSE;
 	driver->DetectFilesystem = detectFilesystem;
@@ -2602,6 +2638,19 @@ BOOL OpenDevice (const char *lpszPath, OPEN_TEST_STRUCT *driver, BOOL detectFile
 				   driver, sizeof (OPEN_TEST_STRUCT),
 				   &dwResult, NULL);
 
+	// check variable driver
+	if (	bResult 
+		&& ( (driver->bDetectTCBootLoader != TRUE && driver->bDetectTCBootLoader != FALSE) ||
+			  (driver->TCBootLoaderDetected != TRUE && driver->TCBootLoaderDetected != FALSE) ||
+			  (driver->DetectFilesystem != TRUE && driver->DetectFilesystem != FALSE) ||
+			  (driver->FilesystemDetected != TRUE && driver->FilesystemDetected != FALSE) ||
+			  (wcscmp (wszFileName, driver->wszFileName))
+			)
+		)
+	{
+		return FALSE;
+	}
+
 	if (bResult == FALSE)
 	{
 		dwResult = GetLastError ();
@@ -3935,7 +3984,7 @@ void handleError (HWND hwndDlg, int code)
 
 	if (Silent) return;
 
-	switch (code)
+	switch (code & 0x0000FFFF)
 	{
 	case ERR_OS_ERROR:
 		handleWin32Error (hwndDlg);
@@ -4029,9 +4078,22 @@ void handleError (HWND hwndDlg, int code)
 		break;
 
 	case ERR_UNSUPPORTED_TRUECRYPT_FORMAT:
-		MessageBoxW (hwndDlg, GetString ("UNSUPPORTED_TRUECRYPT_FORMAT"), lpszTitle, ICON_HAND);
+		StringCbPrintfW (szTmp, sizeof(szTmp), GetString ("UNSUPPORTED_TRUECRYPT_FORMAT"), (code >> 24), (code >> 16) & 0x000000FF);
+		MessageBoxW (hwndDlg, szTmp, lpszTitle, ICON_HAND);
 		break;
 
+#ifndef SETUP
+	case ERR_RAND_INIT_FAILED:
+		StringCbPrintfW (szTmp, sizeof(szTmp), GetString ("INIT_RAND"), SRC_POS, GetLastError ());
+		MessageBoxW (hwndDlg, szTmp, lpszTitle, MB_ICONERROR);
+		break;
+
+	case ERR_CAPI_INIT_FAILED:
+		StringCbPrintfW (szTmp, sizeof(szTmp), GetString ("CAPI_RAND"), SRC_POS, CryptoAPILastError);
+		MessageBoxW (hwndDlg, szTmp, lpszTitle, MB_ICONERROR);
+		break;
+#endif
+
 	default:
 		StringCbPrintfW (szTmp, sizeof(szTmp), GetString ("ERR_UNKNOWN"), code);
 		MessageBoxW (hwndDlg, szTmp, lpszTitle, ICON_HAND);
@@ -4550,10 +4612,12 @@ static BOOL PerformBenchmark(HWND hBenchDlg, HWND hwndDlg)
 		if (!EAIsFormatEnabled (ci->ea))
 			continue;
 
-		EAInit (ci->ea, ci->master_keydata, ci->ks);
+		if (ERR_CIPHER_INIT_FAILURE == EAInit (ci->ea, ci->master_keydata, ci->ks))
+			goto counter_error;
 
 		ci->mode = FIRST_MODE_OF_OPERATION_ID;
-		EAInitMode (ci);
+		if (!EAInitMode (ci))
+			goto counter_error;
 
 		if (QueryPerformanceCounter (&performanceCountStart) == 0)
 			goto counter_error;
@@ -4963,12 +5027,13 @@ exit:
 	return 0;
 }
 
-
+/* Randinit is always called before UserEnrichRandomPool, so we don't need
+ * the extra Randinit call here since it will always succeed but we keep it
+ * for clarity purposes
+ */
 void UserEnrichRandomPool (HWND hwndDlg)
 {
-	Randinit();
-
-	if (!IsRandomPoolEnrichedByUser())
+	if ((0 == Randinit()) && !IsRandomPoolEnrichedByUser())
 	{
 		INT_PTR result = DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_RANDOM_POOL_ENRICHMENT), hwndDlg ? hwndDlg : MainDlg, (DLGPROC) RandomPoolEnrichementDlgProc, (LPARAM) 0);
 		SetRandomPoolEnrichedByUserStatus (result == IDOK);
@@ -5016,7 +5081,7 @@ BOOL CALLBACK KeyfileGeneratorDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LP
 #ifndef VOLFORMAT			
 			if (Randinit ()) 
 			{
-				Error ("INIT_RAND", hwndDlg);
+				handleError (hwndDlg, (CryptoAPILastError == ERROR_SUCCESS)? ERR_RAND_INIT_FAILED : ERR_CAPI_INIT_FAILED);
 				EndDialog (hwndDlg, IDCLOSE);
 			}
 #endif
@@ -5583,12 +5648,16 @@ CipherTestDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 					if ((tmpRetVal = EAInit (ci->ea, (unsigned char *) key, ci->ks)) != ERR_SUCCESS)
 					{
 						handleError (hwndDlg, tmpRetVal);
+						crypto_close (ci);
 						return 1;
 					}
 
 					memcpy (&ci->k2, secondaryKey, sizeof (secondaryKey));
 					if (!EAInitMode (ci))
+					{
+						crypto_close (ci);
 						return 1;
+					}
 
 					structDataUnitNo.Value = BE64(((unsigned __int64 *)dataUnitNo)[0]);
 
@@ -6228,6 +6297,8 @@ BOOL CALLBACK WaitDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
 
 		if (lw == IDOK || lw == IDCANCEL)
 			return 1;
+		else
+			return 0;
 
 	default:
 		if (msg == g_wmWaitDlg)
@@ -6267,6 +6338,7 @@ typedef struct
 	MOUNT_STRUCT* pmount;
 	BOOL* pbResult;
 	DWORD* pdwResult;
+	DWORD dwLastError;
 } MountThreadParam;
 
 void CALLBACK MountWaitThreadProc(void* pArg, HWND )
@@ -6275,6 +6347,8 @@ void CALLBACK MountWaitThreadProc(void* pArg, HWND )
 
 	*(pThreadParam->pbResult) = DeviceIoControl (hDriver, TC_IOCTL_MOUNT_VOLUME, pThreadParam->pmount,
 		sizeof (MOUNT_STRUCT),pThreadParam->pmount, sizeof (MOUNT_STRUCT), pThreadParam->pdwResult, NULL);
+
+	pThreadParam->dwLastError = GetLastError ();
 }
 
 /************************************************************************/
@@ -6303,7 +6377,7 @@ int MountVolume (HWND hwndDlg,
 				 BOOL bReportWrongPassword)
 {
 	MOUNT_STRUCT mount;
-	DWORD dwResult;
+	DWORD dwResult, dwLastError = ERROR_SUCCESS;
 	BOOL bResult, bDevice;
 	char root[MAX_PATH];
 	int favoriteMountOnArrivalRetryCount = 0;
@@ -6434,13 +6508,17 @@ retry:
 		mountThreadParam.pmount = &mount;
 		mountThreadParam.pbResult = &bResult;
 		mountThreadParam.pdwResult = &dwResult;
+		mountThreadParam.dwLastError = ERROR_SUCCESS;
 
 		ShowWaitDialog (hwndDlg, FALSE, MountWaitThreadProc, &mountThreadParam);
+
+		dwLastError  = mountThreadParam.dwLastError;
 	}
 	else
 	{
 		bResult = DeviceIoControl (hDriver, TC_IOCTL_MOUNT_VOLUME, &mount,
 				sizeof (mount), &mount, sizeof (mount), &dwResult, NULL);
+		dwLastError = GetLastError ();
 	}
 
 	burn (&mount.VolumePassword, sizeof (mount.VolumePassword));
@@ -6449,6 +6527,7 @@ retry:
 	burn (&mount.bTrueCryptMode, sizeof (mount.bTrueCryptMode));
 	burn (&mount.ProtectedHidVolPkcs5Prf, sizeof (mount.ProtectedHidVolPkcs5Prf));
 
+	SetLastError (dwLastError);
 	if (bResult == FALSE)
 	{
 		// Volume already open by another process
@@ -6849,8 +6928,13 @@ BOOL GetDriveGeometry (const char *deviceName, PDISK_GEOMETRY diskGeometry)
 	bResult = DeviceIoControl (hDriver, TC_IOCTL_GET_DRIVE_GEOMETRY, &dg,
 		sizeof (dg), &dg, sizeof (dg), &dwResult, NULL);
 
-	memcpy (diskGeometry, &dg.diskGeometry, sizeof (DISK_GEOMETRY));
-	return bResult;
+	if (bResult && (dwResult == sizeof (dg)) && dg.diskGeometry.BytesPerSector)
+	{
+		memcpy (diskGeometry, &dg.diskGeometry, sizeof (DISK_GEOMETRY));
+		return TRUE;
+	}
+	else
+		return FALSE;
 }
 
 
@@ -7202,8 +7286,8 @@ BOOL TCCopyFile (char *sourceFileName, char *destinationFile)
 		}
 	}
 
-	GetFileTime (src, NULL, NULL, &fileTime);
-	SetFileTime (dst, NULL, NULL, &fileTime);
+	if (GetFileTime (src, NULL, NULL, &fileTime))
+		SetFileTime (dst, NULL, NULL, &fileTime);
 
 	CloseHandle (src);
 	CloseHandle (dst);
@@ -7819,6 +7903,7 @@ char *LoadFileBlock (char *fileName, __int64 fileOffset, size_t count)
 	char *buf;
 	DWORD bytesRead = 0;
 	LARGE_INTEGER seekOffset, seekOffsetNew;
+	BOOL bStatus;
 
 	HANDLE h = CreateFile (fileName, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
 	if (h == INVALID_HANDLE_VALUE)
@@ -7840,11 +7925,11 @@ char *LoadFileBlock (char *fileName, __int64 fileOffset, size_t count)
 		return NULL;
 	}
 
-	ReadFile (h, buf, count, &bytesRead, NULL);
+	bStatus = ReadFile (h, buf, count, &bytesRead, NULL);
 
 	CloseHandle (h);
 
-	if (bytesRead != count)
+	if (!bStatus || (bytesRead != count))
 	{
 		free (buf);
 		return NULL;
@@ -8089,6 +8174,11 @@ int Error (char *stringId, HWND hwnd)
 	return MessageBoxW (hwnd, GetString (stringId), lpszTitle, MB_ICONERROR);
 }
 
+int ErrorRetryCancel (char *stringId, HWND hwnd)
+{
+	if (Silent) return 0;
+	return MessageBoxW (hwnd, GetString (stringId), lpszTitle, MB_ICONERROR | MB_RETRYCANCEL);
+}
 
 int ErrorTopMost (char *stringId, HWND hwnd)
 {
@@ -9167,7 +9257,12 @@ int ReEncryptVolumeHeader (HWND hwndDlg, char *buffer, BOOL bBoot, CRYPTO_INFO *
 	RandSetHashFunction (cryptoInfo->pkcs5);
 
 	if (Randinit() != ERR_SUCCESS)
-		return ERR_PARAMETER_INCORRECT;
+	{
+		if (CryptoAPILastError == ERROR_SUCCESS)
+			return ERR_RAND_INIT_FAILED;
+		else
+			return ERR_CAPI_INIT_FAILED;
+	}
 
 	UserEnrichRandomPool (NULL);
 
@@ -9290,7 +9385,10 @@ std::wstring SingleStringToWide (const std::string &singleString)
 
 	WCHAR wbuf[65536];
 	int wideLen = MultiByteToWideChar (CP_ACP, 0, singleString.c_str(), -1, wbuf, array_capacity (wbuf) - 1);
-	throw_sys_if (wideLen == 0);
+	
+   // We don't throw exception here and only return empty string.
+	// All calls to this function use valid strings.
+	// throw_sys_if (wideLen == 0);
 
 	wbuf[wideLen] = 0;
 	return wbuf;
@@ -9801,7 +9899,10 @@ BOOL InitSecurityTokenLibrary (HWND hwndDlg)
 		PinRequestHandler(HWND hwnd) : m_hwnd(hwnd) {}
 		virtual void operator() (string &str)
 		{
-			if (DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_TOKEN_PASSWORD), m_hwnd, (DLGPROC) SecurityTokenPasswordDlgProc, (LPARAM) &str) == IDCANCEL)
+			HWND hParent = IsWindow (m_hwnd)? m_hwnd : GetActiveWindow();
+			if (!hParent)
+				hParent = GetForegroundWindow ();
+			if (DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_TOKEN_PASSWORD), hParent, (DLGPROC) SecurityTokenPasswordDlgProc, (LPARAM) &str) == IDCANCEL)
 				throw UserAbort (SRC_POS);
 
 			if (hCursor != NULL)
@@ -9815,7 +9916,10 @@ BOOL InitSecurityTokenLibrary (HWND hwndDlg)
 		WarningHandler(HWND hwnd) : m_hwnd(hwnd) {}
 		virtual void operator() (const Exception &e)
 		{
-			e.Show (m_hwnd);
+			HWND hParent = IsWindow (m_hwnd)? m_hwnd : GetActiveWindow();
+			if (!hParent)
+				hParent = GetForegroundWindow ();
+			e.Show (hParent);
 		}
 	};
 
@@ -9849,7 +9953,7 @@ std::vector <HostDevice> GetAvailableHostDevices (bool noDeviceProperties, bool
 			string devPathStr (strm.str());
 			const char *devPath = devPathStr.c_str();
 
-			OPEN_TEST_STRUCT openTest;
+			OPEN_TEST_STRUCT openTest = {0};
 			if (!OpenDevice (devPath, &openTest, detectUnencryptedFilesystems && partNumber != 0))
 			{
 				if (partNumber == 0)
@@ -9944,7 +10048,7 @@ std::vector <HostDevice> GetAvailableHostDevices (bool noDeviceProperties, bool
 			string devPathStr (strm.str());
 			const char *devPath = devPathStr.c_str();
 
-			OPEN_TEST_STRUCT openTest;
+			OPEN_TEST_STRUCT openTest = {0};
 			if (!OpenDevice (devPath, &openTest, detectUnencryptedFilesystems))
 				continue;
 
@@ -10184,7 +10288,7 @@ BOOL DisableFileCompression (HANDLE file)
 
 BOOL VolumePathExists (const char *volumePath)
 {
-	OPEN_TEST_STRUCT openTest;
+	OPEN_TEST_STRUCT openTest = {0};
 	char upperCasePath[TC_MAX_PATH + 1];
 
 	UpperCaseCopy (upperCasePath, sizeof(upperCasePath), volumePath);
@@ -10200,7 +10304,16 @@ BOOL VolumePathExists (const char *volumePath)
 			return TRUE;
 	}
 
-	return _access (volumePath, 0) == 0;
+	if (_access (volumePath, 0) == 0)
+		return TRUE;
+	else
+	{
+		DWORD dwResult = GetLastError ();
+		if (dwResult == ERROR_SHARING_VIOLATION)
+			return TRUE;
+		else
+			return FALSE;
+	}
 }
 
 
diff --git a/src/Common/Dlgcode.h b/src/Common/Dlgcode.h
index 601871c..96d5e86 100644
--- a/src/Common/Dlgcode.h
+++ b/src/Common/Dlgcode.h
@@ -226,6 +226,7 @@ void UpperCaseCopy ( char *lpszDest , size_t cbDest, const char *lpszSource );
 void CreateFullVolumePath ( char *lpszDiskFile , size_t cbDiskFile, const char *lpszFileName , BOOL *bDevice );
 int FakeDosNameForDevice ( const char *lpszDiskFile , char *lpszDosDevice , size_t cbDosDevice, char *lpszCFDevice , size_t cbCFDevice, BOOL bNameOnly );
 int RemoveFakeDosName ( char *lpszDiskFile , char *lpszDosDevice );
+void AbortProcessDirect ( wchar_t *abortMsg );
 void AbortProcess ( char *stringId );
 void AbortProcessSilent ( void );
 void *err_malloc ( size_t size );
@@ -288,6 +289,7 @@ void SavePostInstallTasksSettings (int command);
 void DoPostInstallTasks (HWND hwndDlg);
 void InitOSVersionInfo ();
 void InitApp ( HINSTANCE hInstance, char *lpszCommandLine );
+void FinalizeApp (void);
 void InitHelpFileName (void);
 BOOL OpenDevice (const char *lpszPath, OPEN_TEST_STRUCT *driver, BOOL detectFilesystem);
 void NotifyDriverOfPortableMode (void);
@@ -385,6 +387,7 @@ int Warning (char *stringId, HWND hwnd);
 int WarningTopMost (char *stringId, HWND hwnd);
 int WarningDirect (const wchar_t *warnMsg, HWND hwnd);
 int Error (char *stringId, HWND hwnd);
+int ErrorRetryCancel (char *stringId, HWND hwnd);
 int ErrorDirect (const wchar_t *errMsg, HWND hwnd);
 int ErrorTopMost (char *stringId, HWND hwnd);
 int AskYesNo (char *stringId, HWND hwnd);
diff --git a/src/Common/Endian.h b/src/Common/Endian.h
index 38af8cf..bffcb86 100644
--- a/src/Common/Endian.h
+++ b/src/Common/Endian.h
@@ -108,7 +108,7 @@ extern "C"
 	  ( ( unsigned __int32 ) memPtr[ -2 ] << 8 ) | ( unsigned __int32 ) memPtr[ -1 ] )
 
 #define mgetWord(memPtr) 		\
-	( memPtr += 2, ( unsigned short ) memPtr[ -2 ] << 8 ) | ( ( unsigned short ) memPtr[ -1 ] ) 
+	( memPtr += 2, ((( unsigned short ) memPtr[ -2 ] << 8 ) | ( ( unsigned short ) memPtr[ -1 ] )) ) 
 
 #define mgetByte(memPtr)		\
 	( ( unsigned char ) *memPtr++ )
diff --git a/src/Common/Exception.h b/src/Common/Exception.h
index e5d4fd4..0883df1 100644
--- a/src/Common/Exception.h
+++ b/src/Common/Exception.h
@@ -11,6 +11,7 @@
 
 #include "Platform/PlatformBase.h"
 #include "Dlgcode.h"
+#include <strsafe.h>
 
 namespace VeraCrypt
 {
@@ -62,6 +63,38 @@ namespace VeraCrypt
 		const char *SrcPos;
 	};
 
+	struct RandInitFailed : public Exception
+	{
+		RandInitFailed (const char *srcPos, DWORD dwLastError) : SrcPos (srcPos), LastError (dwLastError) { }
+
+		void Show (HWND parent) const
+		{
+			char szErrCode[16];
+			StringCbPrintf (szErrCode, sizeof(szErrCode), "0x%.8X", LastError);
+			string msgBody = "The Random Generator initialization failed.\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n" + string (SrcPos) + "\nLast Error = " + string (szErrCode) + ")";
+			MessageBox (parent, msgBody.c_str(), "VeraCrypt", MB_ICONERROR | MB_SETFOREGROUND);
+		}
+
+		const char *SrcPos;
+		DWORD LastError;
+	};
+
+	struct CryptoApiFailed : public Exception
+	{
+		CryptoApiFailed (const char *srcPos, DWORD dwLastError) : SrcPos (srcPos), LastError (dwLastError) { }
+
+		void Show (HWND parent) const
+		{
+			char szErrCode[16];
+			StringCbPrintf (szErrCode, sizeof(szErrCode), "0x%.8X", LastError);
+			string msgBody = "Windows Crypto API failed.\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n" + string (SrcPos) + "\nLast Error = " + string (szErrCode) + ")";
+			MessageBox (parent, msgBody.c_str(), "VeraCrypt", MB_ICONERROR | MB_SETFOREGROUND);
+		}
+
+		const char *SrcPos;
+		DWORD LastError;
+	};
+
 	struct TimeOut : public Exception
 	{
 		TimeOut (const char *srcPos) { }
diff --git a/src/Common/Fat.c b/src/Common/Fat.c
index b613852..2adafd7 100644
--- a/src/Common/Fat.c
+++ b/src/Common/Fat.c
@@ -60,7 +60,7 @@ GetFatParams (fatparams * ft)
 		if (ft->cluster_size == 0)
 			ft->cluster_size = 1;
 
-		if (ft->cluster_size * ft->sector_size > TC_MAX_FAT_CLUSTER_SIZE)
+		if (((unsigned __int64) ft->cluster_size * ft->sector_size) > TC_MAX_FAT_CLUSTER_SIZE)
 			ft->cluster_size = TC_MAX_FAT_CLUSTER_SIZE / ft->sector_size;
 
 		if (ft->cluster_size > 128)
@@ -85,7 +85,7 @@ GetFatParams (fatparams * ft)
 	ft->size_fat = 12;
 	ft->reserved = 2;
 	fatsecs = ft->num_sectors - (ft->size_root_dir + ft->sector_size - 1) / ft->sector_size - ft->reserved;
-	ft->cluster_count = (int) (((__int64) fatsecs * ft->sector_size) / (ft->cluster_size * ft->sector_size));
+	ft->cluster_count = (int) (((unsigned __int64) fatsecs * ft->sector_size) / ((unsigned __int64) ft->cluster_size * ft->sector_size));
 	ft->fat_length = (((ft->cluster_count * 3 + 1) >> 1) + ft->sector_size - 1) / ft->sector_size;
 
 	if (ft->cluster_count >= 4085) // FAT16
@@ -108,7 +108,7 @@ GetFatParams (fatparams * ft)
 
 			fatsecs = ft->num_sectors - ft->reserved;
 			ft->size_root_dir = ft->cluster_size * ft->sector_size;
-			ft->cluster_count = (int) (((__int64) fatsecs * ft->sector_size) / (ft->cluster_size * ft->sector_size));
+			ft->cluster_count = (int) (((unsigned __int64) fatsecs * ft->sector_size) / (ft->cluster_size * ft->sector_size));
 			ft->fat_length = (ft->cluster_count * 4 + ft->sector_size - 1) / ft->sector_size;
 
 		// Align data area on TC_MAX_VOLUME_SECTOR_SIZE
@@ -282,7 +282,8 @@ FormatFat (void* hwndDlgPtr, unsigned __int64 startSector, fatparams * ft, void
 
 	memset (sector, 0, ft->sector_size);
 
-	RandgetBytes (hwndDlg, ft->volume_id, sizeof (ft->volume_id), FALSE);
+	if (!RandgetBytes (hwndDlg, ft->volume_id, sizeof (ft->volume_id), FALSE))
+		goto fail;
 
 	PutBoot (ft, (unsigned char *) sector);
 	if (WriteSector (dev, sector, write_buf, &write_buf_cnt, &nSecNo,
diff --git a/src/Common/Fat.h b/src/Common/Fat.h
index 59c993b..cbb7e0d 100644
--- a/src/Common/Fat.h
+++ b/src/Common/Fat.h
@@ -19,7 +19,7 @@ typedef struct fatparams_t
 	int size_fat;		/* size of FAT */
 	int fats;
 	int media;
-	int cluster_size;
+	unsigned int cluster_size;
 	int fat_length;
 	uint16 dir_entries;
 	uint16 sector_size;
diff --git a/src/Common/Format.h b/src/Common/Format.h
index 3422fec..584d98d 100644
--- a/src/Common/Format.h
+++ b/src/Common/Format.h
@@ -33,7 +33,7 @@ typedef struct
 	int pkcs5;
 	uint32 headerFlags;
 	int fileSystem;
-	int clusterSize;
+	unsigned int clusterSize;
 	BOOL sparseFileSwitch;
 	BOOL quickFormat;
 	int sectorSize;
diff --git a/src/Common/Inflate.c b/src/Common/Inflate.c
index d4c8908..bf850e7 100644
--- a/src/Common/Inflate.c
+++ b/src/Common/Inflate.c
@@ -849,7 +849,10 @@ static int inflate_dynamic(__G)
       j = 3 + ((unsigned)b & 3);
       DUMPBITS(2)
       if ((unsigned)i + j > n)
+      {
+        huft_free(tl);
         return 1;
+      }
       while (j--)
         ll[i++] = l;
     }
@@ -859,7 +862,10 @@ static int inflate_dynamic(__G)
       j = 3 + ((unsigned)b & 7);
       DUMPBITS(3)
       if ((unsigned)i + j > n)
+      {
+        huft_free(tl);
         return 1;
+      }
       while (j--)
         ll[i++] = 0;
       l = 0;
@@ -870,7 +876,10 @@ static int inflate_dynamic(__G)
       j = 11 + ((unsigned)b & 0x7f);
       DUMPBITS(7)
       if ((unsigned)i + j > n)
+      {
+        huft_free(tl);
         return 1;
+      }
       while (j--)
         ll[i++] = 0;
       l = 0;
@@ -908,6 +917,7 @@ static int inflate_dynamic(__G)
     //if (!uO.qflag)
       MESSAGE((uch *)"(incomplete d-tree)  ", 21L, 1);
     huft_free(tl);
+    huft_free(td);
     return 1;
   }
   if (i == 1) {
@@ -917,6 +927,7 @@ static int inflate_dynamic(__G)
     //if (!uO.qflag)
       MESSAGE((uch *)"(incomplete d-tree)  ", 21L, 1);
     huft_free(td);
+    td = NULL;
 #endif
   }
   if (i)
@@ -927,13 +938,15 @@ static int inflate_dynamic(__G)
 
 
   /* decompress until an end-of-block code */
-  if (inflate_codes(__G__ tl, td, bl, bd))
-    return 1;
-
+  i = inflate_codes(__G__ tl, td, bl, bd);
 
   /* free the decoding tables, return */
   huft_free(tl);
   huft_free(td);
+
+  if (i)
+    return 1;
+
   return 0;
 }
 
diff --git a/src/Common/Language.c b/src/Common/Language.c
index 3ec95db..7853d18 100644
--- a/src/Common/Language.c
+++ b/src/Common/Language.c
@@ -64,6 +64,7 @@ static char *MapNextLanguageFile ()
 	WIN32_FIND_DATAW find;
 	HANDLE file;
 	DWORD read;
+	BOOL bStatus;
 
 	if (LanguageFileFindHandle == INVALID_HANDLE_VALUE)
 	{
@@ -107,9 +108,9 @@ static char *MapNextLanguageFile ()
 		return NULL;
 	}
 
-	ReadFile (file, LanguageFileBuffer, find.nFileSizeLow, &read, NULL);
+	bStatus = ReadFile (file, LanguageFileBuffer, find.nFileSizeLow, &read, NULL);
 	CloseHandle (file);
-	if (read != find.nFileSizeLow)
+	if (!bStatus || (read != find.nFileSizeLow))
 	{
 		free(LanguageFileBuffer);
 		return NULL;
diff --git a/src/Common/Language.xml b/src/Common/Language.xml
index 5a54f08..c4d93f2 100644
--- a/src/Common/Language.xml
+++ b/src/Common/Language.xml
@@ -155,6 +155,7 @@
     <control lang="en" key="IDC_PREF_MOUNT_READONLY">Mount volumes as read-only</control>
     <control lang="en" key="IDC_PREF_MOUNT_REMOVABLE">Mount volumes as removable media</control>
     <control lang="en" key="IDC_PREF_OPEN_EXPLORER">Open Explorer window for successfully mounted volume</control>
+    <control lang="en" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Temporary Cache password during "Mount Favorite Volumes" operations</control>
     <control lang="en" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Use a different taskbar icon when there are mounted volumes</control>
     <control lang="en" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Wipe cached passwords on auto-dismount</control>
     <control lang="en" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Wipe cached passwords on exit</control>
@@ -172,6 +173,7 @@
     <control lang="en" key="IDC_VOLUME_PROPERTIES">&Volume Properties...</control>
     <control lang="en" key="IDC_VOLUME_TOOLS">Volume &Tools...</control>
     <control lang="en" key="IDC_WIPE_CACHE">&Wipe Cache</control>
+    <control lang="en" key="IDD_DEFAULT_MOUNT_PARAMETERS">VeraCrypt - Mount Parameters</control>
     <control lang="en" key="IDD_FAVORITE_VOLUMES">VeraCrypt - Favorite Volumes</control>
     <control lang="en" key="IDD_HOTKEYS_DLG">VeraCrypt - System-Wide Hot Keys</control>
     <control lang="en" key="IDD_MOUNT_DLG">VeraCrypt</control>
@@ -201,6 +203,7 @@
     <control lang="en" key="IDM_CREATE_RESCUE_DISK">Create Rescue Disk...</control>
     <control lang="en" key="IDM_CREATE_VOLUME">Create New Volume...</control>
     <control lang="en" key="IDM_DEFAULT_KEYFILES">Default Keyfiles...</control>
+    <control lang="en" key="IDM_DEFAULT_MOUNT_PARAMETERS">Default Mount Parameters...</control>
 	 <control lang="en" key="IDM_DONATE">Donate now...</control>
     <control lang="en" key="IDM_ENCRYPT_SYSTEM_DEVICE">Encrypt System Partition/Drive...</control>
     <control lang="en" key="IDM_FAQ">Frequently Asked Questions</control>
@@ -243,6 +246,7 @@
     <control lang="en" key="IDM_UNMOUNT_VOLUME">Dismount Volume</control>
     <control lang="en" key="IDM_VERIFY_RESCUE_DISK">Verify Rescue Disk</control>
     <control lang="en" key="IDM_VERSION_HISTORY">Version History</control>
+    <control lang="en" key="IDM_VOLUME_EXPANDER">Volume Expander</control>
     <control lang="en" key="IDM_VOLUME_PROPERTIES">Volume Properties</control>
     <control lang="en" key="IDM_VOLUME_WIZARD">Volume Creation Wizard</control>
     <control lang="en" key="IDM_WEBSITE">VeraCrypt Website</control>
@@ -522,7 +526,8 @@
     <string lang="en" key="CONFIRM_RESTART">Your computer must be restarted.\n\nDo you want to restart it now?</string>
     <string lang="en" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">An error occurred when obtaining the system encryption status.</string>
     <string lang="en" key="INIT_SYS_ENC">Cannot initialize application components for system encryption.</string>
-    <string lang="en" key="INIT_RAND">Failed to initialize the random number generator!</string>
+    <string lang="en" key="INIT_RAND">Failed to initialize the random number generator!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
+    <string lang="en" key="CAPI_RAND">Windows Crypto API failed!\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n%hs, Last Error = 0x%.8X)</string>
     <string lang="en" key="INIT_REGISTER">Unable to initialize the application. Failed to register the Dialog class.</string>
     <string lang="en" key="INIT_RICHEDIT">Error: Failed to load the Rich Edit system library.</string>
     <string lang="en" key="INTRO_TITLE">VeraCrypt Volume Creation Wizard</string>
@@ -535,6 +540,7 @@
     <string lang="en" key="MOUNT_BUTTON">&Mount</string>
     <string lang="en" key="NEW_VERSION_REQUIRED">A newer version of VeraCrypt is required to mount this volume.</string>
     <string lang="en" key="VOL_CREATION_WIZARD_NOT_FOUND">Error: Volume Creation Wizard not found.\n\nPlease make sure that the file 'VeraCrypt Format.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCrypt Format.exe' on your disk and run it.</string>
+    <string lang="en" key="VOL_EXPANDER_NOT_FOUND">Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it.</string>
     <string lang="en" key="NEXT">&Next ></string>
     <string lang="en" key="FINALIZE">&Finish</string>
     <string lang="en" key="INSTALL">&Install</string>
@@ -590,12 +596,12 @@
     <string lang="en" key="PASSWORD_HIDDEN_OS_TITLE">Password for Hidden Operating System</string>
     <string lang="en" key="PASSWORD_LENGTH_WARNING">WARNING: Short passwords are easy to crack using brute force techniques!\n\nWe recommend choosing a password consisting of more than 20 characters. Are you sure you want to use a short password?</string>
     <string lang="en" key="PASSWORD_TITLE">Volume Password</string>
-    <string lang="en" key="PASSWORD_WRONG">Incorrect password or not a VeraCrypt volume.</string>
-    <string lang="en" key="PASSWORD_OR_KEYFILE_WRONG">Incorrect keyfile(s) and/or password or not a VeraCrypt volume.</string>
-    <string lang="en" key="PASSWORD_OR_MODE_WRONG">Wrong mount mode, incorrect password, or not a VeraCrypt volume.</string>
-    <string lang="en" key="PASSWORD_OR_KEYFILE_OR_MODE_WRONG">Wrong mount mode, incorrect keyfile(s) and/or password, or not a VeraCrypt volume.</string>
-    <string lang="en" key="PASSWORD_WRONG_AUTOMOUNT">Incorrect password or no VeraCrypt volume found.</string>
-    <string lang="en" key="PASSWORD_OR_KEYFILE_WRONG_AUTOMOUNT">Incorrect keyfile(s)/password or no VeraCrypt volume found.</string>
+    <string lang="en" key="PASSWORD_WRONG">Incorrect password/PRF or not a valid volume.</string>
+    <string lang="en" key="PASSWORD_OR_KEYFILE_WRONG">Incorrect keyfile(s) and/or password/PRF or not a valid volume.</string>
+    <string lang="en" key="PASSWORD_OR_MODE_WRONG">Wrong mount mode, incorrect password/PRF, or not a valid volume.</string>
+    <string lang="en" key="PASSWORD_OR_KEYFILE_OR_MODE_WRONG">Wrong mount mode, incorrect keyfile(s) and/or password/PRF, or not a valid volume.</string>
+    <string lang="en" key="PASSWORD_WRONG_AUTOMOUNT">Incorrect password/PRF or no valid volume found.</string>
+    <string lang="en" key="PASSWORD_OR_KEYFILE_WRONG_AUTOMOUNT">Incorrect keyfile(s)/password/PRF or no valid volume found.</string>
     <string lang="en" key="PASSWORD_WRONG_CAPSLOCK_ON">\n\nWarning: Caps Lock is on. This may cause you to enter your password incorrectly.</string>
     <string lang="en" key="HIDDEN_FILES_PRESENT_IN_KEYFILE_PATH">\n\nWARNING: Hidden file(s) have been found in a keyfile search path. Such hidden files cannot be used as keyfiles. If you need to use them as keyfiles, remove their 'Hidden' attribute (right-click each of them, select 'Properties', uncheck 'Hidden' and click OK). Note: Hidden files are visible only if the corresponding option is enabled (Computer > Organize > 'Folder and search options' > View).</string>
     <string lang="en" key="HIDDEN_VOL_PROT_PASSWORD_US_KEYB_LAYOUT">If you are attempting to protect a hidden volume containing a hidden system, please make sure you are using the standard US keyboard layout when typing the password for the hidden volume. This is required due to the fact that the password needs to be typed in the pre-boot environment (before Windows starts) where non-US Windows keyboard layouts are not available.</string>
@@ -1234,7 +1240,7 @@
     <string lang="en" key="CONFIRM_SETTING_DEGRADES_PERFORMANCE">WARNING: This setting may degrade performance.\n\nAre you sure you want to use this setting?</string>
     <string lang="en" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE">Warning: VeraCrypt volume auto-dismounted</string>
     <string lang="en" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN">Before you physically remove or turn off a device containing a mounted volume, you should always dismount the volume in VeraCrypt first.\n\nUnexpected spontaneous dismount is usually caused by an intermittently failing cable, drive (enclosure), etc.</string>
-    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x series</string>
+    <string lang="en" key="UNSUPPORTED_TRUECRYPT_FORMAT">This volume was created with TrueCrypt %x.%x but VeraCrypt supports only TrueCrypt volumes created with TrueCrypt 6.x/7.x series</string>
 	  <string lang="en" key="TEST">Test</string>
     <string lang="en" key="KEYFILE">Keyfile</string>
     <string lang="en" key="VKEY_08">Backspace</string>
diff --git a/src/Common/Password.c b/src/Common/Password.c
index f8fd3c1..8014713 100644
--- a/src/Common/Password.c
+++ b/src/Common/Password.c
@@ -32,7 +32,7 @@ void VerifyPasswordAndUpdate (HWND hwndDlg, HWND hButton, HWND hPassword,
 	int k = GetWindowTextLength (hPassword);
 	BOOL bEnable = FALSE;
 
-	if (hwndDlg);		/* Remove warning */
+	UNREFERENCED_PARAMETER (hwndDlg);		/* Remove warning */
 
 	GetWindowText (hPassword, szTmp1, sizeof (szTmp1));
 	GetWindowText (hVerify, szTmp2, sizeof (szTmp2));
@@ -230,7 +230,13 @@ int ChangePwd (const char *lpszVolume, Password *oldPassword, int old_pkcs5, BOO
 	}
 
 	if (Randinit ())
+	{
+		if (CryptoAPILastError == ERROR_SUCCESS)
+			nStatus = ERR_RAND_INIT_FAILED;
+		else
+			nStatus = ERR_CAPI_INIT_FAILED;
 		goto error;
+	}
 
 	SetRandomPoolEnrichedByUserStatus (FALSE); /* force the display of the random enriching dialog */
 
diff --git a/src/Common/Pkcs5.c b/src/Common/Pkcs5.c
index e522a36..6585704 100644
--- a/src/Common/Pkcs5.c
+++ b/src/Common/Pkcs5.c
@@ -36,43 +36,30 @@ void hmac_truncate
 
 #if !defined(TC_WINDOWS_BOOT) || defined(TC_WINDOWS_BOOT_SHA2)
 
-void hmac_sha256
+typedef struct hmac_sha256_ctx_struct
+{
+	sha256_ctx ctx;
+	char buf[SHA256_BLOCKSIZE];
+	char k[PKCS5_SALT_SIZE + 4]; /* enough to hold (salt_len + 4) and also the SHA256 hash */
+	char u[SHA256_DIGESTSIZE];
+} hmac_sha256_ctx;
+
+void hmac_sha256_internal
 (
-	  char *k,		/* secret key */
+	  char *k,		/* secret key. It's ensured to be always <= 32 bytes */
 	  int lk,		/* length of the key in bytes */
-	  char *d,		/* data */
-	  int ld,		/* length of data in bytes */
-	  char *out		/* output buffer, at least "t" bytes */
+	  char *d,		/* input data. d pointer is guaranteed to be at least 32-bytes long */
+	  int ld,		/* length of input data in bytes */
+	  hmac_sha256_ctx* hmac /* HMAC-SHA256 context which holds temporary variables */
 )
 {
-	sha256_ctx ictx, octx;
-	char isha[SHA256_DIGESTSIZE], osha[SHA256_DIGESTSIZE];
-#ifndef TC_WINDOWS_BOOT
-	char key[SHA256_DIGESTSIZE];
-#endif
-	char buf[SHA256_BLOCKSIZE];
 	int i;
+	sha256_ctx* ctx = &(hmac->ctx);
+	char* buf = hmac->buf;
 
-#ifndef TC_WINDOWS_BOOT
-    /* If the key is longer than the hash algorithm block size,
-	   let key = sha256(key), as per HMAC specifications. */
-	if (lk > SHA256_BLOCKSIZE)
-	{
-		sha256_ctx tctx;
-
-		sha256_begin (&tctx);
-		sha256_hash ((unsigned char *) k, lk, &tctx);
-		sha256_end ((unsigned char *) key, &tctx);
-
-		k = key;
-		lk = SHA256_DIGESTSIZE;
-
-		burn (&tctx, sizeof(tctx));		// Prevent leaks
-	}
-#endif
 	/**** Inner Digest ****/
 
-	sha256_begin (&ictx);
+	sha256_begin (ctx);
 
 	/* Pad the key for inner digest */
 	for (i = 0; i < lk; ++i)
@@ -80,47 +67,65 @@ void hmac_sha256
 	for (i = lk; i < SHA256_BLOCKSIZE; ++i)
 		buf[i] = 0x36;
 
-	sha256_hash ((unsigned char *) buf, SHA256_BLOCKSIZE, &ictx);
-	sha256_hash ((unsigned char *) d, ld, &ictx);
+	sha256_hash ((unsigned char *) buf, SHA256_BLOCKSIZE, ctx);
+	sha256_hash ((unsigned char *) d, ld, ctx);
 
-	sha256_end ((unsigned char *) isha, &ictx);
+	sha256_end ((unsigned char *) d, ctx); /* d = inner digest */
 
 	/**** Outer Digest ****/
 
-	sha256_begin (&octx);
+	sha256_begin (ctx);
 
 	for (i = 0; i < lk; ++i)
 		buf[i] = (char) (k[i] ^ 0x5C);
 	for (i = lk; i < SHA256_BLOCKSIZE; ++i)
 		buf[i] = 0x5C;
 
-	sha256_hash ((unsigned char *) buf, SHA256_BLOCKSIZE, &octx);
-	sha256_hash ((unsigned char *) isha, SHA256_DIGESTSIZE, &octx);
+	sha256_hash ((unsigned char *) buf, SHA256_BLOCKSIZE, ctx);
+	sha256_hash ((unsigned char *) d, SHA256_DIGESTSIZE, ctx);
 
-	sha256_end ((unsigned char *) osha, &octx);
+	sha256_end ((unsigned char *) d, ctx); /* d = outer digest */
+}
 
-	/* truncate and print the results */
-	hmac_truncate (osha, out, SHA256_DIGESTSIZE);
+#ifndef TC_WINDOWS_BOOT
+void hmac_sha256
+(
+	char *k,    /* secret key */
+	int lk,    /* length of the key in bytes */
+	char *d,    /* data */
+	int ld    /* length of data in bytes */
+)
+{
+	hmac_sha256_ctx hmac;
+	char key[SHA256_DIGESTSIZE];
+    /* If the key is longer than the hash algorithm block size,
+	   let key = sha256(key), as per HMAC specifications. */
+	if (lk > SHA256_BLOCKSIZE)
+	{
+		sha256_ctx tctx;
+
+		sha256_begin (&tctx);
+		sha256_hash ((unsigned char *) k, lk, &tctx);
+		sha256_end ((unsigned char *) key, &tctx);
+
+		k = key;
+		lk = SHA256_DIGESTSIZE;
 
+		burn (&tctx, sizeof(tctx));		// Prevent leaks
+	}
+	hmac_sha256_internal(k, lk, d, ld, &hmac);
 	/* Prevent leaks */
-	burn (&ictx, sizeof(ictx));
-	burn (&octx, sizeof(octx));
-	burn (isha, sizeof(isha));
-	burn (osha, sizeof(osha));
-	burn (buf, sizeof(buf));
-#ifndef TC_WINDOWS_BOOT
-	burn (key, sizeof(key));
-#endif
+	burn(&hmac, sizeof(hmac));
+	burn(key, sizeof(key));
 }
+#endif
 
-
-void derive_u_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *u, int b)
+static void derive_u_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, int b, hmac_sha256_ctx* hmac)
 {
-	char j[SHA256_DIGESTSIZE], k[SHA256_DIGESTSIZE];
-	char init[128];
-	char counter[4];
+	char* k = hmac->k;
+	char* u = hmac->u;
 	uint32 c;
-	int i;
+	int i;	
 
 #ifdef TC_WINDOWS_BOOT
 	/* In bootloader, iterations is a boolean : TRUE for boot derivation mode, FALSE otherwise 
@@ -135,35 +140,50 @@ void derive_u_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, int iter
 #endif
 
 	/* iteration 1 */
-	memset (counter, 0, 4);
-	counter[3] = (char) b;
-	memcpy (init, salt, salt_len);	/* salt */
-	memcpy (&init[salt_len], counter, 4);	/* big-endian block number */
-	hmac_sha256 (pwd, pwd_len, init, salt_len + 4, j);
-	memcpy (u, j, SHA256_DIGESTSIZE);
+	memcpy (k, salt, salt_len);	/* salt */
+	
+	/* big-endian block number */
+	memset (&k[salt_len], 0, 3);
+	k[salt_len + 3] = (char) b;
+
+	hmac_sha256_internal (pwd, pwd_len, k, salt_len + 4, hmac);
+	memcpy (u, k, SHA256_DIGESTSIZE);
 
 	/* remaining iterations */
 	while (c > 1)
 	{
-		hmac_sha256 (pwd, pwd_len, j, SHA256_DIGESTSIZE, k);
+		hmac_sha256_internal (pwd, pwd_len, k, SHA256_DIGESTSIZE, hmac);
 		for (i = 0; i < SHA256_DIGESTSIZE; i++)
 		{
 			u[i] ^= k[i];
-			j[i] = k[i];
 		}
 		c--;
 	}
-
-	/* Prevent possible leaks. */
-	burn (j, sizeof(j));
-	burn (k, sizeof(k));
 }
 
 
 void derive_key_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *dk, int dklen)
-{
-	char u[SHA256_DIGESTSIZE];
+{	
+	hmac_sha256_ctx hmac;
 	int b, l, r;
+#ifndef TC_WINDOWS_BOOT
+	char key[SHA256_DIGESTSIZE];
+    /* If the password is longer than the hash algorithm block size,
+	   let pwd = sha256(pwd), as per HMAC specifications. */
+	if (pwd_len > SHA256_BLOCKSIZE)
+	{
+		sha256_ctx tctx;
+
+		sha256_begin (&tctx);
+		sha256_hash ((unsigned char *) pwd, pwd_len, &tctx);
+		sha256_end ((unsigned char *) key, &tctx);
+
+		pwd = key;
+		pwd_len = SHA256_DIGESTSIZE;
+
+		burn (&tctx, sizeof(tctx));		// Prevent leaks
+	}
+#endif
 
 	if (dklen % SHA256_DIGESTSIZE)
 	{
@@ -179,62 +199,51 @@ void derive_key_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, int it
 	/* first l - 1 blocks */
 	for (b = 1; b < l; b++)
 	{
-		derive_u_sha256 (pwd, pwd_len, salt, salt_len, iterations, u, b);
-		memcpy (dk, u, SHA256_DIGESTSIZE);
+		derive_u_sha256 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
+		memcpy (dk, hmac.u, SHA256_DIGESTSIZE);
 		dk += SHA256_DIGESTSIZE;
 	}
 
 	/* last block */
-	derive_u_sha256 (pwd, pwd_len, salt, salt_len, iterations, u, b);
-	memcpy (dk, u, r);
+	derive_u_sha256 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
+	memcpy (dk, hmac.u, r);
 
 
 	/* Prevent possible leaks. */
-	burn (u, sizeof(u));
+	burn (&hmac, sizeof(hmac));
+#ifndef TC_WINDOWS_BOOT
+	burn (key, sizeof(key));
+#endif
 }
 
 #endif
 
 #ifndef TC_WINDOWS_BOOT
 
-void hmac_sha512
+typedef struct hmac_sha512_ctx_struct
+{
+	sha512_ctx ctx;
+	char buf[SHA512_BLOCKSIZE];
+	char k[PKCS5_SALT_SIZE + 4]; /* enough to hold (salt_len + 4) and also the SHA512 hash */
+	char u[SHA512_DIGESTSIZE];
+} hmac_sha512_ctx;
+
+void hmac_sha512_internal
 (
 	  char *k,		/* secret key */
 	  int lk,		/* length of the key in bytes */
-	  char *d,		/* data */
-	  int ld,		/* length of data in bytes */
-	  char *out,		/* output buffer, at least "t" bytes */
-	  int t
+	  char *d,		/* data and also output buffer of at least 64 bytes */
+	  int ld,			/* length of data in bytes */
+	  hmac_sha512_ctx* hmac
 )
 {
-	sha512_ctx ictx, octx;
-	char isha[SHA512_DIGESTSIZE], osha[SHA512_DIGESTSIZE];
-#ifndef TC_WINDOWS_BOOT
-	char key[SHA512_DIGESTSIZE];
-#endif
-	char buf[SHA512_BLOCKSIZE];
+	sha512_ctx* ctx = &(hmac->ctx);
+	char* buf = hmac->buf;
 	int i;
 
-#ifndef TC_WINDOWS_BOOT
-    /* If the key is longer than the hash algorithm block size,
-	   let key = sha512(key), as per HMAC specifications. */
-	if (lk > SHA512_BLOCKSIZE)
-	{
-		sha512_ctx tctx;
-
-		sha512_begin (&tctx);
-		sha512_hash ((unsigned char *) k, lk, &tctx);
-		sha512_end ((unsigned char *) key, &tctx);
-
-		k = key;
-		lk = SHA512_DIGESTSIZE;
-
-		burn (&tctx, sizeof(tctx));		// Prevent leaks
-	}
-#endif
 	/**** Inner Digest ****/
 
-	sha512_begin (&ictx);
+	sha512_begin (ctx);
 
 	/* Pad the key for inner digest */
 	for (i = 0; i < lk; ++i)
@@ -242,77 +251,108 @@ void hmac_sha512
 	for (i = lk; i < SHA512_BLOCKSIZE; ++i)
 		buf[i] = 0x36;
 
-	sha512_hash ((unsigned char *) buf, SHA512_BLOCKSIZE, &ictx);
-	sha512_hash ((unsigned char *) d, ld, &ictx);
+	sha512_hash ((unsigned char *) buf, SHA512_BLOCKSIZE, ctx);
+	sha512_hash ((unsigned char *) d, ld, ctx);
 
-	sha512_end ((unsigned char *) isha, &ictx);
+	sha512_end ((unsigned char *) d, ctx);
 
 	/**** Outer Digest ****/
 
-	sha512_begin (&octx);
+	sha512_begin (ctx);
 
 	for (i = 0; i < lk; ++i)
 		buf[i] = (char) (k[i] ^ 0x5C);
 	for (i = lk; i < SHA512_BLOCKSIZE; ++i)
 		buf[i] = 0x5C;
 
-	sha512_hash ((unsigned char *) buf, SHA512_BLOCKSIZE, &octx);
-	sha512_hash ((unsigned char *) isha, SHA512_DIGESTSIZE, &octx);
+	sha512_hash ((unsigned char *) buf, SHA512_BLOCKSIZE, ctx);
+	sha512_hash ((unsigned char *) d, SHA512_DIGESTSIZE, ctx);
+
+	sha512_end ((unsigned char *) d, ctx);
+}
+
+void hmac_sha512
+(
+	  char *k,		/* secret key */
+	  int lk,		/* length of the key in bytes */
+	  char *d,		/* data and also output buffer of at least 64 bytes */
+	  int ld			/* length of data in bytes */	  
+)
+{
+	hmac_sha512_ctx hmac;
+	char key[SHA512_DIGESTSIZE];
+
+    /* If the key is longer than the hash algorithm block size,
+	   let key = sha512(key), as per HMAC specifications. */
+	if (lk > SHA512_BLOCKSIZE)
+	{
+		sha512_ctx tctx;
+
+		sha512_begin (&tctx);
+		sha512_hash ((unsigned char *) k, lk, &tctx);
+		sha512_end ((unsigned char *) key, &tctx);
 
-	sha512_end ((unsigned char *) osha, &octx);
+		k = key;
+		lk = SHA512_DIGESTSIZE;
 
-	/* truncate and print the results */
-	t = t > SHA512_DIGESTSIZE ? SHA512_DIGESTSIZE : t;
-	hmac_truncate (osha, out, t);
+		burn (&tctx, sizeof(tctx));		// Prevent leaks
+	}
+
+	hmac_sha512_internal (k, lk, d, ld, &hmac);
 
 	/* Prevent leaks */
-	burn (&ictx, sizeof(ictx));
-	burn (&octx, sizeof(octx));
-	burn (isha, sizeof(isha));
-	burn (osha, sizeof(osha));
-	burn (buf, sizeof(buf));
-#ifndef TC_WINDOWS_BOOT
+	burn (&hmac, sizeof(hmac));
 	burn (key, sizeof(key));
-#endif
 }
 
-
-void derive_u_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *u, int b)
+static void derive_u_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, int b, hmac_sha512_ctx* hmac)
 {
-	char j[SHA512_DIGESTSIZE], k[SHA512_DIGESTSIZE];
-	char init[128];
-	char counter[4];
+	char* k = hmac->k;
+	char* u = hmac->u;
 	int c, i;
 
 	/* iteration 1 */
-	memset (counter, 0, 4);
-	counter[3] = (char) b;
-	memcpy (init, salt, salt_len);	/* salt */
-	memcpy (&init[salt_len], counter, 4);	/* big-endian block number */
-	hmac_sha512 (pwd, pwd_len, init, salt_len + 4, j, SHA512_DIGESTSIZE);
-	memcpy (u, j, SHA512_DIGESTSIZE);
+	memcpy (k, salt, salt_len);	/* salt */
+	/* big-endian block number */
+	memset (&k[salt_len], 0, 3);
+	k[salt_len + 3] = (char) b;
+
+	hmac_sha512_internal (pwd, pwd_len, k, salt_len + 4, hmac);
+	memcpy (u, k, SHA512_DIGESTSIZE);
 
 	/* remaining iterations */
 	for (c = 1; c < iterations; c++)
 	{
-		hmac_sha512 (pwd, pwd_len, j, SHA512_DIGESTSIZE, k, SHA512_DIGESTSIZE);
+		hmac_sha512_internal (pwd, pwd_len, k, SHA512_DIGESTSIZE, hmac);
 		for (i = 0; i < SHA512_DIGESTSIZE; i++)
 		{
 			u[i] ^= k[i];
-			j[i] = k[i];
 		}
 	}
-
-	/* Prevent possible leaks. */
-	burn (j, sizeof(j));
-	burn (k, sizeof(k));
 }
 
 
 void derive_key_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *dk, int dklen)
 {
-	char u[SHA512_DIGESTSIZE];
+	hmac_sha512_ctx hmac;
 	int b, l, r;
+	char key[SHA512_DIGESTSIZE];
+
+    /* If the password is longer than the hash algorithm block size,
+	   let pwd = sha512(pwd), as per HMAC specifications. */
+	if (pwd_len > SHA512_BLOCKSIZE)
+	{
+		sha512_ctx tctx;
+
+		sha512_begin (&tctx);
+		sha512_hash ((unsigned char *) pwd, pwd_len, &tctx);
+		sha512_end ((unsigned char *) key, &tctx);
+
+		pwd = key;
+		pwd_len = SHA512_DIGESTSIZE;
+
+		burn (&tctx, sizeof(tctx));		// Prevent leaks
+	}
 
 	if (dklen % SHA512_DIGESTSIZE)
 	{
@@ -328,51 +368,39 @@ void derive_key_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, int it
 	/* first l - 1 blocks */
 	for (b = 1; b < l; b++)
 	{
-		derive_u_sha512 (pwd, pwd_len, salt, salt_len, iterations, u, b);
-		memcpy (dk, u, SHA512_DIGESTSIZE);
+		derive_u_sha512 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
+		memcpy (dk, hmac.u, SHA512_DIGESTSIZE);
 		dk += SHA512_DIGESTSIZE;
 	}
 
 	/* last block */
-	derive_u_sha512 (pwd, pwd_len, salt, salt_len, iterations, u, b);
-	memcpy (dk, u, r);
+	derive_u_sha512 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
+	memcpy (dk, hmac.u, r);
 
 
 	/* Prevent possible leaks. */
-	burn (u, sizeof(u));
+	burn (&hmac, sizeof(hmac));
+	burn (key, sizeof(key));
 }
 
 #endif // TC_WINDOWS_BOOT
 
 #if !defined(TC_WINDOWS_BOOT) || defined(TC_WINDOWS_BOOT_RIPEMD160)
 
-void hmac_ripemd160 (char *key, int keylen, char *input, int len, char *digest)
+typedef struct hmac_ripemd160_ctx_struct
 {
-    RMD160_CTX context;
-    unsigned char k_ipad[65];  /* inner padding - key XORd with ipad */
-    unsigned char k_opad[65];  /* outer padding - key XORd with opad */
-#ifndef TC_WINDOWS_BOOT
-    unsigned char tk[RIPEMD160_DIGESTSIZE];
-#endif
-    int i;
-
-#ifndef TC_WINDOWS_BOOT
-    /* If the key is longer than the hash algorithm block size,
-	   let key = ripemd160(key), as per HMAC specifications. */
-    if (keylen > RIPEMD160_BLOCKSIZE) 
-	{
-        RMD160_CTX      tctx;
-
-        RMD160Init(&tctx);
-        RMD160Update(&tctx, (const unsigned char *) key, keylen);
-        RMD160Final(tk, &tctx);
+	RMD160_CTX context;
+	char k_pad[65];
+	char k[PKCS5_SALT_SIZE + 4]; /* enough to hold (salt_len + 4) and also the RIPEMD-160 hash */
+	char u[RIPEMD160_DIGESTSIZE];
+} hmac_ripemd160_ctx;
 
-        key = (char *) tk;
-        keylen = RIPEMD160_DIGESTSIZE;
+void hmac_ripemd160_internal (char *key, int keylen, char *input_digest, int len, hmac_ripemd160_ctx* hmac)
+{
+	RMD160_CTX* context = &(hmac->context);
+   unsigned char* k_pad = hmac->k_pad;  /* inner/outer padding - key XORd with ipad */
+   int i;
 
-		burn (&tctx, sizeof(tctx));	// Prevent leaks
-    }
-#endif
 	/*
 
 	RMD160(K XOR opad, RMD160(K XOR ipad, text))
@@ -384,44 +412,69 @@ void hmac_ripemd160 (char *key, int keylen, char *input, int len, char *digest)
 
 
 	/* start out by storing key in pads */
-	memset(k_ipad, 0x36, sizeof(k_ipad));
-    memset(k_opad, 0x5c, sizeof(k_opad));
+	memset(k_pad, 0x36, 65);
 
     /* XOR key with ipad and opad values */
     for (i=0; i<keylen; i++) 
 	{
-        k_ipad[i] ^= key[i];
-        k_opad[i] ^= key[i];
+        k_pad[i] ^= key[i];
     }
 
     /* perform inner RIPEMD-160 */
 
-    RMD160Init(&context);           /* init context for 1st pass */
-    RMD160Update(&context, k_ipad, RIPEMD160_BLOCKSIZE);  /* start with inner pad */
-    RMD160Update(&context, (const unsigned char *) input, len); /* then text of datagram */
-    RMD160Final((unsigned char *) digest, &context);         /* finish up 1st pass */
+    RMD160Init(context);           /* init context for 1st pass */
+    RMD160Update(context, k_pad, RIPEMD160_BLOCKSIZE);  /* start with inner pad */
+    RMD160Update(context, (const unsigned char *) input_digest, len); /* then text of datagram */
+    RMD160Final((unsigned char *) input_digest, context);         /* finish up 1st pass */
 
     /* perform outer RIPEMD-160 */
-    RMD160Init(&context);           /* init context for 2nd pass */
-    RMD160Update(&context, k_opad, RIPEMD160_BLOCKSIZE);  /* start with outer pad */
+    memset(k_pad, 0x5c, 65);
+    for (i=0; i<keylen; i++) 
+	 {
+        k_pad[i] ^= key[i];
+    }
+
+    RMD160Init(context);           /* init context for 2nd pass */
+    RMD160Update(context, k_pad, RIPEMD160_BLOCKSIZE);  /* start with outer pad */
     /* results of 1st hash */
-    RMD160Update(&context, (const unsigned char *) digest, RIPEMD160_DIGESTSIZE);
-    RMD160Final((unsigned char *) digest, &context);         /* finish up 2nd pass */
+    RMD160Update(context, (const unsigned char *) input_digest, RIPEMD160_DIGESTSIZE);
+    RMD160Final((unsigned char *) input_digest, context);         /* finish up 2nd pass */
+}
 
-	/* Prevent possible leaks. */
-    burn (k_ipad, sizeof(k_ipad));
-    burn (k_opad, sizeof(k_opad));
 #ifndef TC_WINDOWS_BOOT
+void hmac_ripemd160 (char *key, int keylen, char *input_digest, int len)
+{
+	hmac_ripemd160_ctx hmac;
+	unsigned char tk[RIPEMD160_DIGESTSIZE];
+
+    /* If the key is longer than the hash algorithm block size,
+	   let key = ripemd160(key), as per HMAC specifications. */
+    if (keylen > RIPEMD160_BLOCKSIZE) 
+	{
+        RMD160_CTX      tctx;
+
+        RMD160Init(&tctx);
+        RMD160Update(&tctx, (const unsigned char *) key, keylen);
+        RMD160Final(tk, &tctx);
+
+        key = (char *) tk;
+        keylen = RIPEMD160_DIGESTSIZE;
+
+		burn (&tctx, sizeof(tctx));	// Prevent leaks
+    }
+
+	hmac_ripemd160_internal (key, keylen, input_digest, len, &hmac);
+
+	burn (&hmac, sizeof(hmac));
 	burn (tk, sizeof(tk));
-#endif
-	burn (&context, sizeof(context));
 }
+#endif
 
-void derive_u_ripemd160 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *u, int b)
+
+static void derive_u_ripemd160 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, int b, hmac_ripemd160_ctx* hmac)
 {
-	char j[RIPEMD160_DIGESTSIZE], k[RIPEMD160_DIGESTSIZE];
-	char init[128];
-	char counter[4];
+	char* k = hmac->k;
+	char* u = hmac->u;
 	uint32 c;
 	int i;
 
@@ -438,34 +491,49 @@ void derive_u_ripemd160 (char *pwd, int pwd_len, char *salt, int salt_len, int i
 #endif
 
 	/* iteration 1 */
-	memset (counter, 0, 4);
-	counter[3] = (char) b;
-	memcpy (init, salt, salt_len);	/* salt */
-	memcpy (&init[salt_len], counter, 4);	/* big-endian block number */
-	hmac_ripemd160 (pwd, pwd_len, init, salt_len + 4, j);
-	memcpy (u, j, RIPEMD160_DIGESTSIZE);
+	memcpy (k, salt, salt_len);	/* salt */
+	
+	/* big-endian block number */
+	memset (&k[salt_len], 0, 3);
+	k[salt_len + 3] = (char) b;
+
+	hmac_ripemd160_internal (pwd, pwd_len, k, salt_len + 4, hmac);
+	memcpy (u, k, RIPEMD160_DIGESTSIZE);
 
 	/* remaining iterations */
 	while ( c > 1)
 	{
-		hmac_ripemd160 (pwd, pwd_len, j, RIPEMD160_DIGESTSIZE, k);
+		hmac_ripemd160_internal (pwd, pwd_len, k, RIPEMD160_DIGESTSIZE, hmac);
 		for (i = 0; i < RIPEMD160_DIGESTSIZE; i++)
 		{
 			u[i] ^= k[i];
-			j[i] = k[i];
 		}
 		c--;
 	}
-
-	/* Prevent possible leaks. */
-	burn (j, sizeof(j));
-	burn (k, sizeof(k));
 }
 
 void derive_key_ripemd160 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *dk, int dklen)
-{
-	char u[RIPEMD160_DIGESTSIZE];
+{	
 	int b, l, r;
+	hmac_ripemd160_ctx hmac;
+#ifndef TC_WINDOWS_BOOT
+	unsigned char tk[RIPEMD160_DIGESTSIZE];
+    /* If the password is longer than the hash algorithm block size,
+	   let password = ripemd160(password), as per HMAC specifications. */
+	if (pwd_len > RIPEMD160_BLOCKSIZE) 
+	{
+        RMD160_CTX      tctx;
+
+        RMD160Init(&tctx);
+        RMD160Update(&tctx, (const unsigned char *) pwd, pwd_len);
+        RMD160Final(tk, &tctx);
+
+        pwd = (char *) tk;
+        pwd_len = RIPEMD160_DIGESTSIZE;
+
+		burn (&tctx, sizeof(tctx));	// Prevent leaks
+    }
+#endif
 
 	if (dklen % RIPEMD160_DIGESTSIZE)
 	{
@@ -481,61 +549,50 @@ void derive_key_ripemd160 (char *pwd, int pwd_len, char *salt, int salt_len, int
 	/* first l - 1 blocks */
 	for (b = 1; b < l; b++)
 	{
-		derive_u_ripemd160 (pwd, pwd_len, salt, salt_len, iterations, u, b);
-		memcpy (dk, u, RIPEMD160_DIGESTSIZE);
+		derive_u_ripemd160 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
+		memcpy (dk, hmac.u, RIPEMD160_DIGESTSIZE);
 		dk += RIPEMD160_DIGESTSIZE;
 	}
 
 	/* last block */
-	derive_u_ripemd160 (pwd, pwd_len, salt, salt_len, iterations, u, b);
-	memcpy (dk, u, r);
+	derive_u_ripemd160 (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
+	memcpy (dk, hmac.u, r);
 
 
 	/* Prevent possible leaks. */
-	burn (u, sizeof(u));
+	burn (&hmac, sizeof(hmac));
+#ifndef TC_WINDOWS_BOOT
+	burn (tk, sizeof(tk));
+#endif
 }
 #endif // TC_WINDOWS_BOOT
 
 #ifndef TC_WINDOWS_BOOT
 
-void hmac_whirlpool
+typedef struct hmac_whirlpool_ctx_struct
+{
+	WHIRLPOOL_CTX ctx;
+	char buf[WHIRLPOOL_BLOCKSIZE];
+	char k[PKCS5_SALT_SIZE + 4]; /* enough to hold (salt_len + 4) and also the Whirlpool hash */
+	char u[WHIRLPOOL_DIGESTSIZE];
+} hmac_whirlpool_ctx;
+
+void hmac_whirlpool_internal
 (
 	  char *k,		/* secret key */
 	  int lk,		/* length of the key in bytes */
-	  char *d,		/* data */
-	  int ld,		/* length of data in bytes */
-	  char *out,	/* output buffer, at least "t" bytes */
-	  int t
+	  char *d,		/* input/output data. d pointer is guaranteed to be at least 64-bytes long */
+	  int ld,		/* length of input data in bytes */
+	  hmac_whirlpool_ctx* hmac /* HMAC-Whirlpool context which holds temporary variables */
 )
 {
-	WHIRLPOOL_CTX ictx, octx;
-	char iwhi[WHIRLPOOL_DIGESTSIZE], owhi[WHIRLPOOL_DIGESTSIZE];
-#ifndef TC_WINDOWS_BOOT
-	char key[WHIRLPOOL_DIGESTSIZE];
-#endif
-	char buf[WHIRLPOOL_BLOCKSIZE];
+	WHIRLPOOL_CTX* ctx = &(hmac->ctx);
+	char* buf = hmac->buf;
 	int i;
 
-#ifndef TC_WINDOWS_BOOT
-    /* If the key is longer than the hash algorithm block size,
-	   let key = whirlpool(key), as per HMAC specifications. */
-	if (lk > WHIRLPOOL_BLOCKSIZE)
-	{
-		WHIRLPOOL_CTX tctx;
-
-		WHIRLPOOL_init (&tctx);
-		WHIRLPOOL_add ((unsigned char *) k, lk * 8, &tctx);
-		WHIRLPOOL_finalize (&tctx, (unsigned char *) key);
-
-		k = key;
-		lk = WHIRLPOOL_DIGESTSIZE;
-
-		burn (&tctx, sizeof(tctx));		// Prevent leaks
-	}
-#endif
 	/**** Inner Digest ****/
 
-	WHIRLPOOL_init (&ictx);
+	WHIRLPOOL_init (ctx);
 
 	/* Pad the key for inner digest */
 	for (i = 0; i < lk; ++i)
@@ -543,75 +600,103 @@ void hmac_whirlpool
 	for (i = lk; i < WHIRLPOOL_BLOCKSIZE; ++i)
 		buf[i] = 0x36;
 
-	WHIRLPOOL_add ((unsigned char *) buf, WHIRLPOOL_BLOCKSIZE * 8, &ictx);
-	WHIRLPOOL_add ((unsigned char *) d, ld * 8, &ictx);
+	WHIRLPOOL_add ((unsigned char *) buf, WHIRLPOOL_BLOCKSIZE * 8, ctx);
+	WHIRLPOOL_add ((unsigned char *) d, ld * 8, ctx);
 
-	WHIRLPOOL_finalize (&ictx, (unsigned char *) iwhi);
+	WHIRLPOOL_finalize (ctx, (unsigned char *) d);
 
 	/**** Outer Digest ****/
 
-	WHIRLPOOL_init (&octx);
+	WHIRLPOOL_init (ctx);
 
 	for (i = 0; i < lk; ++i)
 		buf[i] = (char) (k[i] ^ 0x5C);
 	for (i = lk; i < WHIRLPOOL_BLOCKSIZE; ++i)
 		buf[i] = 0x5C;
 
-	WHIRLPOOL_add ((unsigned char *) buf, WHIRLPOOL_BLOCKSIZE * 8, &octx);
-	WHIRLPOOL_add ((unsigned char *) iwhi, WHIRLPOOL_DIGESTSIZE * 8, &octx);
+	WHIRLPOOL_add ((unsigned char *) buf, WHIRLPOOL_BLOCKSIZE * 8, ctx);
+	WHIRLPOOL_add ((unsigned char *) d, WHIRLPOOL_DIGESTSIZE * 8, ctx);
+
+	WHIRLPOOL_finalize (ctx, (unsigned char *) d);
+}
+
+void hmac_whirlpool
+(
+	  char *k,		/* secret key */
+	  int lk,		/* length of the key in bytes */
+	  char *d,		/* input data. d pointer is guaranteed to be at least 32-bytes long */
+	  int ld		/* length of data in bytes */
+)
+{
+	hmac_whirlpool_ctx hmac;
+	char key[WHIRLPOOL_DIGESTSIZE];
+    /* If the key is longer than the hash algorithm block size,
+	   let key = whirlpool(key), as per HMAC specifications. */
+	if (lk > WHIRLPOOL_BLOCKSIZE)
+	{
+		WHIRLPOOL_CTX tctx;
+
+		WHIRLPOOL_init (&tctx);
+		WHIRLPOOL_add ((unsigned char *) k, lk * 8, &tctx);
+		WHIRLPOOL_finalize (&tctx, (unsigned char *) key);
 
-	WHIRLPOOL_finalize (&octx, (unsigned char *) owhi);
+		k = key;
+		lk = WHIRLPOOL_DIGESTSIZE;
 
-	/* truncate and print the results */
-	t = t > WHIRLPOOL_DIGESTSIZE ? WHIRLPOOL_DIGESTSIZE : t;
-	hmac_truncate (owhi, out, t);
+		burn (&tctx, sizeof(tctx));		// Prevent leaks
+	}
 
-	/* Prevent possible leaks. */
-	burn (&ictx, sizeof(ictx));
-	burn (&octx, sizeof(octx));
-	burn (owhi, sizeof(owhi));
-	burn (iwhi, sizeof(iwhi));
-	burn (buf, sizeof(buf));
-#ifndef TC_WINDOWS_BOOT
-	burn (key, sizeof(key));
-#endif
+	hmac_whirlpool_internal(k, lk, d, ld, &hmac);
+	/* Prevent leaks */
+	burn(&hmac, sizeof(hmac));
 }
 
-void derive_u_whirlpool (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *u, int b)
+static void derive_u_whirlpool (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, int b, hmac_whirlpool_ctx* hmac)
 {
-	char j[WHIRLPOOL_DIGESTSIZE], k[WHIRLPOOL_DIGESTSIZE];
-	char init[128];
-	char counter[4];
+	char* u = hmac->u;
+	char* k = hmac->k;
 	int c, i;
 
 	/* iteration 1 */
-	memset (counter, 0, 4);
-	counter[3] = (char) b;
-	memcpy (init, salt, salt_len);	/* salt */
-	memcpy (&init[salt_len], counter, 4);	/* big-endian block number */
-	hmac_whirlpool (pwd, pwd_len, init, salt_len + 4, j, WHIRLPOOL_DIGESTSIZE);
-	memcpy (u, j, WHIRLPOOL_DIGESTSIZE);
+	memcpy (k, salt, salt_len);	/* salt */
+	/* big-endian block number */
+	memset (&k[salt_len], 0, 3);	
+	k[salt_len + 3] = (char) b;
+
+	hmac_whirlpool_internal (pwd, pwd_len, k, salt_len + 4, hmac);
+	memcpy (u, k, WHIRLPOOL_DIGESTSIZE);
 
 	/* remaining iterations */
 	for (c = 1; c < iterations; c++)
 	{
-		hmac_whirlpool (pwd, pwd_len, j, WHIRLPOOL_DIGESTSIZE, k, WHIRLPOOL_DIGESTSIZE);
+		hmac_whirlpool_internal (pwd, pwd_len, k, WHIRLPOOL_DIGESTSIZE, hmac);
 		for (i = 0; i < WHIRLPOOL_DIGESTSIZE; i++)
 		{
 			u[i] ^= k[i];
-			j[i] = k[i];
 		}
 	}
-
-	/* Prevent possible leaks. */
-	burn (j, sizeof(j));
-	burn (k, sizeof(k));
 }
 
 void derive_key_whirlpool (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *dk, int dklen)
 {
-	char u[WHIRLPOOL_DIGESTSIZE];
+	hmac_whirlpool_ctx hmac;
+	char key[WHIRLPOOL_DIGESTSIZE];
 	int b, l, r;
+    /* If the password is longer than the hash algorithm block size,
+	   let pwd = whirlpool(pwd), as per HMAC specifications. */
+	if (pwd_len > WHIRLPOOL_BLOCKSIZE)
+	{
+		WHIRLPOOL_CTX tctx;
+
+		WHIRLPOOL_init (&tctx);
+		WHIRLPOOL_add ((unsigned char *) pwd, pwd_len * 8, &tctx);
+		WHIRLPOOL_finalize (&tctx, (unsigned char *) key);
+
+		pwd = key;
+		pwd_len = WHIRLPOOL_DIGESTSIZE;
+
+		burn (&tctx, sizeof(tctx));		// Prevent leaks
+	}
 
 	if (dklen % WHIRLPOOL_DIGESTSIZE)
 	{
@@ -627,18 +712,19 @@ void derive_key_whirlpool (char *pwd, int pwd_len, char *salt, int salt_len, int
 	/* first l - 1 blocks */
 	for (b = 1; b < l; b++)
 	{
-		derive_u_whirlpool (pwd, pwd_len, salt, salt_len, iterations, u, b);
-		memcpy (dk, u, WHIRLPOOL_DIGESTSIZE);
+		derive_u_whirlpool (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
+		memcpy (dk, hmac.u, WHIRLPOOL_DIGESTSIZE);
 		dk += WHIRLPOOL_DIGESTSIZE;
 	}
 
 	/* last block */
-	derive_u_whirlpool (pwd, pwd_len, salt, salt_len, iterations, u, b);
-	memcpy (dk, u, r);
+	derive_u_whirlpool (pwd, pwd_len, salt, salt_len, iterations, b, &hmac);
+	memcpy (dk, hmac.u, r);
 
 
 	/* Prevent possible leaks. */
-	burn (u, sizeof(u));
+	burn (&hmac, sizeof(hmac));
+	burn (key, sizeof(key));
 }
 
 
@@ -683,7 +769,10 @@ int get_pkcs5_iteration_count (int pkcs5_prf_id, BOOL truecryptMode, BOOL bBoot)
 		return truecryptMode? 1000 : 500000;
 
 	case SHA256:
-		return bBoot? 200000 : 500000;
+		if (truecryptMode)
+			return 0; // SHA-256 not supported by TrueCrypt
+		else
+			return bBoot? 200000 : 500000;
 
 	default:		
 		TC_THROW_FATAL_EXCEPTION;	// Unknown/wrong ID
diff --git a/src/Common/Pkcs5.h b/src/Common/Pkcs5.h
index d7ab90d..ef93139 100644
--- a/src/Common/Pkcs5.h
+++ b/src/Common/Pkcs5.h
@@ -18,19 +18,22 @@
 extern "C"
 {
 #endif
-void hmac_sha256 (char *k, int lk, char *d, int ld, char *out);
-void derive_u_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *u, int b);
+/* output written to d which must be at lease 32 bytes long */
+void hmac_sha256 (char *k, int lk, char *d, int ld);
 void derive_key_sha256 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *dk, int dklen);
 
-void hmac_sha512 (char *k, int lk, char *d, int ld, char *out, int t);
-void derive_u_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *u, int b);
+/* output written to d which must be at lease 64 bytes long */
+void hmac_sha512 (char *k, int lk, char *d, int ld);
 void derive_key_sha512 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *dk, int dklen);
-void hmac_ripemd160 (char *key, int keylen, char *input, int len, char *digest);
-void derive_u_ripemd160 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *u, int b);
+
+/* output written to input_digest which must be at lease 20 bytes long */
+void hmac_ripemd160 (char *key, int keylen, char *input_digest, int len);
 void derive_key_ripemd160 (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *dk, int dklen);
-void hmac_whirlpool (char *k, int lk, char *d, int ld, char *out, int t);
-void derive_u_whirlpool (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *u, int b);
+
+/* output written to d which must be at lease 64 bytes long */
+void hmac_whirlpool (char *k, int lk, char *d, int ld);
 void derive_key_whirlpool (char *pwd, int pwd_len, char *salt, int salt_len, int iterations, char *dk, int dklen);
+
 int get_pkcs5_iteration_count (int pkcs5_prf_id, BOOL truecryptMode, BOOL bBoot);
 char *get_pkcs5_prf_name (int pkcs5_prf_id);
 
diff --git a/src/Common/Random.c b/src/Common/Random.c
index cd85957..ae91f2d 100644
--- a/src/Common/Random.c
+++ b/src/Common/Random.c
@@ -60,12 +60,14 @@ HANDLE hNetAPI32 = NULL;
 
 // CryptoAPI
 BOOL CryptoAPIAvailable = FALSE;
+DWORD CryptoAPILastError = ERROR_SUCCESS;
 HCRYPTPROV hCryptProv;
 
 
 /* Init the random number generator, setup the hooks, and start the thread */
 int Randinit ()
 {
+	DWORD dwLastError = ERROR_SUCCESS;
 	if (GetMaxPkcs5OutSize() > RNG_POOL_SIZE)
 		TC_THROW_FATAL_EXCEPTION;
 
@@ -75,6 +77,7 @@ int Randinit ()
 	InitializeCriticalSection (&critRandProt);
 
 	bRandDidInit = TRUE;
+	CryptoAPILastError = ERROR_SUCCESS;
 
 	if (pRandPool == NULL)
 	{
@@ -98,10 +101,13 @@ int Randinit ()
 		handleWin32Error (0);
 		goto error;
 	}
-
-	if (!CryptAcquireContext (&hCryptProv, NULL, NULL, PROV_RSA_FULL, 0)
-		&& !CryptAcquireContext (&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET))
+	
+	if (!CryptAcquireContext (&hCryptProv, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_SILENT))
+	{		
 		CryptoAPIAvailable = FALSE;
+		CryptoAPILastError = GetLastError ();
+		goto error;
+	}
 	else
 		CryptoAPIAvailable = TRUE;
 
@@ -111,7 +117,9 @@ int Randinit ()
 	return 0;
 
 error:
+	dwLastError = GetLastError();
 	RandStop (TRUE);
+	SetLastError (dwLastError);
 	return 1;
 }
 
@@ -149,6 +157,7 @@ void RandStop (BOOL freePool)
 	{
 		CryptReleaseContext (hCryptProv, 0);
 		CryptoAPIAvailable = FALSE;
+		CryptoAPILastError = ERROR_SUCCESS;
 	}
 
 	hMouse = NULL;
@@ -359,13 +368,19 @@ BOOL RandgetBytesFull ( void* hwndDlg, unsigned char *buf , int len, BOOL forceS
 	if (bDidSlowPoll == FALSE || forceSlowPoll)
 	{
 		if (!SlowPoll ())
+		{
+			handleError ((HWND) hwndDlg, ERR_CAPI_INIT_FAILED);
 			ret = FALSE;
+		}
 		else
 			bDidSlowPoll = TRUE;
 	}
 
 	if (!FastPoll ())
+	{
+		handleError ((HWND) hwndDlg, ERR_CAPI_INIT_FAILED);
 		ret = FALSE;
+	}
 
 	/* There's never more than RNG_POOL_SIZE worth of randomess */
 	if ( (!allowAnyLength) && (len > RNG_POOL_SIZE))
@@ -534,7 +549,7 @@ LRESULT CALLBACK KeyboardProc (int nCode, WPARAM wParam, LPARAM lParam)
 /* This is the thread function which will poll the system for randomness */
 static unsigned __stdcall PeriodicFastPollThreadProc (void *dummy)
 {
-	if (dummy);		/* Remove unused parameter warning */
+	UNREFERENCED_PARAMETER (dummy);		/* Remove unused parameter warning */
 
 	for (;;)
 	{
@@ -692,13 +707,24 @@ BOOL SlowPoll (void)
 		CloseHandle (hDevice);
 	}
 
-	// CryptoAPI
-	if (CryptoAPIAvailable && CryptGenRandom (hCryptProv, sizeof (buffer), buffer)) 
+	// CryptoAPI: We always have a valid CryptoAPI context when we arrive here but
+	//            we keep the check for clarity purpose
+	if ( !CryptoAPIAvailable )
+		return FALSE;
+	if (CryptGenRandom (hCryptProv, sizeof (buffer), buffer)) 
+	{
 		RandaddBuf (buffer, sizeof (buffer));
 
-	burn(buffer, sizeof (buffer));
-	Randmix();
-	return TRUE;
+		burn(buffer, sizeof (buffer));
+		Randmix();
+		return TRUE;
+	}
+	else
+	{
+		/* return error in case CryptGenRandom fails */
+		CryptoAPILastError = GetLastError ();		
+		return FALSE;
+	}
 }
 
 
@@ -803,9 +829,21 @@ BOOL FastPoll (void)
 		RandaddBuf ((unsigned char *) &dwTicks, sizeof (dwTicks));
 	}
 
-	// CryptoAPI
-	if (CryptoAPIAvailable && CryptGenRandom (hCryptProv, sizeof (buffer), buffer)) 
+	// CryptoAPI: We always have a valid CryptoAPI context when we arrive here but
+	//            we keep the check for clarity purpose
+	if ( !CryptoAPIAvailable )
+		return FALSE;
+	if (CryptGenRandom (hCryptProv, sizeof (buffer), buffer)) 
+	{
 		RandaddBuf (buffer, sizeof (buffer));
+		burn (buffer, sizeof(buffer));
+	}
+	else
+	{
+		/* return error in case CryptGenRandom fails */
+		CryptoAPILastError = GetLastError ();
+		return FALSE;
+	}
 
 	/* Apply the pool mixing function */
 	Randmix();
diff --git a/src/Common/Random.h b/src/Common/Random.h
index 72427e0..65e793f 100644
--- a/src/Common/Random.h
+++ b/src/Common/Random.h
@@ -58,6 +58,7 @@ BOOL RandgetBytesFull ( void* hwndDlg, unsigned char *buf , int len, BOOL forceS
 
 extern BOOL volatile bFastPollEnabled;
 extern BOOL volatile bRandmixEnabled;
+extern DWORD CryptoAPILastError;
 
 LRESULT CALLBACK MouseProc ( int nCode , WPARAM wParam , LPARAM lParam );
 LRESULT CALLBACK KeyboardProc ( int nCode , WPARAM wParam , LPARAM lParam );
diff --git a/src/Common/SecurityToken.cpp b/src/Common/SecurityToken.cpp
index e8fb275..1bbad78 100644
--- a/src/Common/SecurityToken.cpp
+++ b/src/Common/SecurityToken.cpp
@@ -700,7 +700,7 @@ namespace VeraCrypt
 					}
 				}
 				wchar_t err[8192];
-				wsprintfW (err, L"%s:\n\n%hs%s", GetString ("SECURITY_TOKEN_ERROR"), errorString.c_str(), subjectErrorCode.str().c_str());
+				StringCbPrintfW (err, sizeof(err),L"%s:\n\n%hs%s", GetString ("SECURITY_TOKEN_ERROR"), errorString.c_str(), subjectErrorCode.str().c_str());
 				ErrorDirect (err, parent);
 			}
 			else
diff --git a/src/Common/Tcdefs.h b/src/Common/Tcdefs.h
index a2d7355..f769395 100644
--- a/src/Common/Tcdefs.h
+++ b/src/Common/Tcdefs.h
@@ -15,15 +15,15 @@
 #define TC_APP_NAME						"VeraCrypt"
 
 // Version displayed to user 
-#define VERSION_STRING					"1.0f-1"
+#define VERSION_STRING					"1.0f-2"
 
 // Version number to compare against driver
-#define VERSION_NUM						0x0110
+#define VERSION_NUM						0x0111
 
 // Release date
-#define TC_STR_RELEASE_DATE				"January 4, 2015"
+#define TC_STR_RELEASE_DATE				"April 5, 2015"
 #define TC_RELEASE_DATE_YEAR			2015
-#define TC_RELEASE_DATE_MONTH			01
+#define TC_RELEASE_DATE_MONTH			04
 
 #define BYTES_PER_KB                    1024LL
 #define BYTES_PER_MB                    1048576LL
@@ -128,6 +128,11 @@ void ThrowFatalException (int line);
 #	define TC_THROW_FATAL_EXCEPTION	*(char *) 0 = 0
 #endif
 
+#ifdef __COVERITY__
+#undef TC_THROW_FATAL_EXCEPTION
+#define TC_THROW_FATAL_EXCEPTION __coverity_panic__()
+#endif
+
 #ifdef TC_WINDOWS_DRIVER
 
 #include <ntifs.h>
@@ -296,7 +301,9 @@ enum
 	ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG	= 31,
 	ERR_NONSYS_INPLACE_ENC_INCOMPLETE		= 32,
 	ERR_USER_ABORT							= 33,
-	ERR_UNSUPPORTED_TRUECRYPT_FORMAT		= 34
+	ERR_UNSUPPORTED_TRUECRYPT_FORMAT		= 34,
+	ERR_RAND_INIT_FAILED					= 35,
+	ERR_CAPI_INIT_FAILED					= 36
 };
 
 #endif 	// #ifndef TCDEFS_H
diff --git a/src/Common/Tests.c b/src/Common/Tests.c
index c5aea91..6e2b0d9 100644
--- a/src/Common/Tests.c
+++ b/src/Common/Tests.c
@@ -1016,8 +1016,9 @@ BOOL test_hmac_sha256 ()
 
 	for (i = 0; i < sizeof (hmac_sha256_test_data) / sizeof(char *); i++)
 	{
-		char digest[SHA256_DIGESTSIZE];
-		hmac_sha256 (hmac_sha256_test_keys[i], (int) strlen (hmac_sha256_test_keys[i]), hmac_sha256_test_data[i], (int) strlen (hmac_sha256_test_data[i]), digest);
+		char digest[1024]; /* large enough to hold digets and test vector inputs */
+		memcpy (digest, hmac_sha256_test_data[i], strlen (hmac_sha256_test_data[i]));
+		hmac_sha256 (hmac_sha256_test_keys[i], (int) strlen (hmac_sha256_test_keys[i]), digest, (int) strlen (hmac_sha256_test_data[i]));
 		if (memcmp (digest, hmac_sha256_test_vectors[i], SHA256_DIGESTSIZE) != 0)
 			return FALSE;
 		else
@@ -1034,8 +1035,9 @@ BOOL test_hmac_sha512 ()
 
 	for (i = 0; i < sizeof (hmac_sha512_test_data) / sizeof(char *); i++)
 	{
-		char digest[SHA512_DIGESTSIZE];
-		hmac_sha512 (hmac_sha512_test_keys[i], (int) strlen (hmac_sha512_test_keys[i]), hmac_sha512_test_data[i], (int) strlen (hmac_sha512_test_data[i]), digest, SHA512_DIGESTSIZE);
+		char digest[1024]; /* large enough to hold digets and test vector inputs */
+		memcpy (digest, hmac_sha512_test_data[i], (int) strlen (hmac_sha512_test_data[i]));
+		hmac_sha512 (hmac_sha512_test_keys[i], (int) strlen (hmac_sha512_test_keys[i]), digest, (int) strlen (hmac_sha512_test_data[i]));
 		if (memcmp (digest, hmac_sha512_test_vectors[i], SHA512_DIGESTSIZE) != 0)
 			return FALSE;
 		else
@@ -1052,8 +1054,9 @@ BOOL test_hmac_ripemd160 ()
 
 	for (i = 0; i < sizeof (hmac_ripemd160_test_data) / sizeof(char *); i++)
 	{
-		char digest[RIPEMD160_DIGESTSIZE];
-		hmac_ripemd160 (hmac_ripemd160_test_keys[i], RIPEMD160_DIGESTSIZE, hmac_ripemd160_test_data[i], (int) strlen (hmac_ripemd160_test_data[i]), digest);
+		char digest[1024]; /* large enough to hold digets and test vector inputs */
+		memcpy (digest, hmac_ripemd160_test_data[i], strlen (hmac_ripemd160_test_data[i]));
+		hmac_ripemd160 (hmac_ripemd160_test_keys[i], RIPEMD160_DIGESTSIZE, digest, (int) strlen (hmac_ripemd160_test_data[i]));
 		if (memcmp (digest, hmac_ripemd160_test_vectors[i], RIPEMD160_DIGESTSIZE) != 0)
 			return FALSE;
 		else
@@ -1065,9 +1068,10 @@ BOOL test_hmac_ripemd160 ()
 
 BOOL test_hmac_whirlpool ()
 {
-	unsigned char digest[WHIRLPOOL_DIGESTSIZE];
+	unsigned char digest[1024]; /* large enough to hold digets and test vector inputs */
 
-	hmac_whirlpool (hmac_whirlpool_test_key, 64, hmac_whirlpool_test_data, (int) strlen (hmac_whirlpool_test_data), digest, WHIRLPOOL_DIGESTSIZE);
+	memcpy (digest, hmac_whirlpool_test_data, strlen (hmac_whirlpool_test_data));
+	hmac_whirlpool (hmac_whirlpool_test_key, 64, digest, (int) strlen (hmac_whirlpool_test_data));
 	if (memcmp (digest, hmac_whirlpool_test_vectors, WHIRLPOOL_DIGESTSIZE) != 0)
 		return FALSE;
 
diff --git a/src/Common/Volumes.c b/src/Common/Volumes.c
index 4acb929..73598c6 100644
--- a/src/Common/Volumes.c
+++ b/src/Common/Volumes.c
@@ -425,7 +425,7 @@ KeyReady:	;
 				{
 					if (cryptoInfo->RequiredProgramVersion < 0x600 || cryptoInfo->RequiredProgramVersion > 0x71a)
 					{
-						status = ERR_UNSUPPORTED_TRUECRYPT_FORMAT;
+						status = ERR_UNSUPPORTED_TRUECRYPT_FORMAT | (((int)cryptoInfo->RequiredProgramVersion) << 16);
 						goto err;
 					}
 					cryptoInfo->LegacyVolume = FALSE;
diff --git a/src/Core/Unix/CoreUnix.cpp b/src/Core/Unix/CoreUnix.cpp
index 0625ed6..57513de 100755
--- a/src/Core/Unix/CoreUnix.cpp
+++ b/src/Core/Unix/CoreUnix.cpp
@@ -551,6 +551,23 @@ namespace VeraCrypt
 					remove (mountPoint.c_str());
 				throw;
 			}
+
+#ifndef TC_MACOSX			
+			// set again correct ownership of the mount point to avoid any issues
+			if (!options.NoFilesystem && options.MountPoint)
+			{
+				mountPoint = *options.MountPoint;
+
+				if (mountPoint.find (GetDefaultMountPointPrefix()) == 0)
+				{
+					try
+					{
+						chown (mountPoint.c_str(), GetRealUserId(), GetRealGroupId());
+					} catch (...) { }
+				}
+			}
+#endif
+
 		}
 		catch (...)
 		{
diff --git a/src/Crypto/Aeskey.c b/src/Crypto/Aeskey.c
index 55b6a3c..948b923 100644
--- a/src/Crypto/Aeskey.c
+++ b/src/Crypto/Aeskey.c
@@ -521,10 +521,10 @@ AES_RETURN aes_decrypt_key256(const unsigned char *key, aes_decrypt_ctx cx[1])
 #endif
     }
 #else
-    cx->ks[v(56,(4))] = ff(ss[4] = word_in(key, 4));
-    cx->ks[v(56,(5))] = ff(ss[5] = word_in(key, 5));
-    cx->ks[v(56,(6))] = ff(ss[6] = word_in(key, 6));
-    cx->ks[v(56,(7))] = ff(ss[7] = word_in(key, 7));
+    ss[4] = word_in(key, 4); cx->ks[v(56,(4))] = ff(ss[4]);
+    ss[5] = word_in(key, 5); cx->ks[v(56,(5))] = ff(ss[5]);
+    ss[6] = word_in(key, 6); cx->ks[v(56,(6))] = ff(ss[6]);
+    ss[7] = word_in(key, 7); cx->ks[v(56,(7))] = ff(ss[7]);
     kdf8(cx->ks, 0); kd8(cx->ks, 1);
     kd8(cx->ks, 2);  kd8(cx->ks, 3);
     kd8(cx->ks, 4);  kd8(cx->ks, 5);
diff --git a/src/Driver/DriveFilter.c b/src/Driver/DriveFilter.c
index df1e235..73a1a53 100644
--- a/src/Driver/DriveFilter.c
+++ b/src/Driver/DriveFilter.c
@@ -1176,6 +1176,36 @@ static VOID SetupThreadProc (PVOID threadArg)
 	KIRQL irql;
 	NTSTATUS status;
 
+	// generate real random values for wipeRandChars and 
+	// wipeRandCharsUpdate instead of relying on uninitialized stack memory
+	LARGE_INTEGER iSeed;
+	KeQuerySystemTime( &iSeed );
+	if (KeGetCurrentIrql() < DISPATCH_LEVEL)
+	{
+		ULONG ulRandom;
+		ulRandom = RtlRandomEx( &iSeed.LowPart );
+		memcpy (wipeRandChars, &ulRandom, TC_WIPE_RAND_CHAR_COUNT);
+		ulRandom = RtlRandomEx( &ulRandom );
+		memcpy (wipeRandCharsUpdate, &ulRandom, TC_WIPE_RAND_CHAR_COUNT);
+		burn (&ulRandom, sizeof(ulRandom));
+	}
+	else
+	{
+		byte digest[SHA512_DIGESTSIZE];
+		sha512_ctx tctx;
+		sha512_begin (&tctx);
+		sha512_hash ((unsigned char *) &(iSeed.QuadPart), sizeof(iSeed.QuadPart), &tctx);
+		sha512_end (digest, &tctx);
+
+		memcpy (wipeRandChars, digest, TC_WIPE_RAND_CHAR_COUNT);
+		memcpy (wipeRandCharsUpdate, &digest[SHA512_DIGESTSIZE - TC_WIPE_RAND_CHAR_COUNT], TC_WIPE_RAND_CHAR_COUNT);
+
+		burn (digest, SHA512_DIGESTSIZE);
+		burn (&tctx, sizeof (tctx));
+	}
+	
+	burn (&iSeed, sizeof(iSeed));
+
 	SetupResult = STATUS_UNSUCCESSFUL;
 
 	// Make sure volume header can be updated
@@ -1475,9 +1505,18 @@ err:
 
 ret:
 	if (buffer)
+	{
+		burn (buffer, TC_ENCRYPTION_SETUP_IO_BLOCK_SIZE);
 		TCfree (buffer);
+	}
 	if (wipeBuffer)
+	{
+		burn (wipeBuffer, TC_ENCRYPTION_SETUP_IO_BLOCK_SIZE);
 		TCfree (wipeBuffer);
+	}
+
+	burn (wipeRandChars, TC_WIPE_RAND_CHAR_COUNT);
+	burn (wipeRandCharsUpdate, TC_WIPE_RAND_CHAR_COUNT);
 
 	SetupInProgress = FALSE;
 	PsTerminateSystemThread (SetupResult);
diff --git a/src/Driver/Driver.rc b/src/Driver/Driver.rc
index ce073aa..d49ec24 100644
--- a/src/Driver/Driver.rc
+++ b/src/Driver/Driver.rc
@@ -27,8 +27,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,6,2
- PRODUCTVERSION 1,0,6,2
+ FILEVERSION 1,0,6,3
+ PRODUCTVERSION 1,0,6,3
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -45,11 +45,11 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "IDRIX"
             VALUE "FileDescription", "VeraCrypt Driver"
-            VALUE "FileVersion", "1.0f-1"
+            VALUE "FileVersion", "1.0f-2"
             VALUE "LegalTrademarks", "VeraCrypt"
             VALUE "OriginalFilename", "veracrypt.sys"
             VALUE "ProductName", "VeraCrypt"
-            VALUE "ProductVersion", "1.0f-1"
+            VALUE "ProductVersion", "1.0f-2"
         END
     END
     BLOCK "VarFileInfo"
diff --git a/src/Driver/Ntdriver.c b/src/Driver/Ntdriver.c
index 7535ed2..86f3d9e 100644
--- a/src/Driver/Ntdriver.c
+++ b/src/Driver/Ntdriver.c
@@ -1709,7 +1709,7 @@ void TCStopVolumeThread (PDEVICE_OBJECT DeviceObject, PEXTENSION Extension)
 {
 	NTSTATUS ntStatus;
 
-	if (DeviceObject);	/* Remove compiler warning */
+	UNREFERENCED_PARAMETER (DeviceObject);	/* Remove compiler warning */
 
 	Dump ("Signalling thread to quit...\n");
 
diff --git a/src/Driver/Ntvol.c b/src/Driver/Ntvol.c
index 3270292..7556b4c 100644
--- a/src/Driver/Ntvol.c
+++ b/src/Driver/Ntvol.c
@@ -726,7 +726,7 @@ error:
 
 void TCCloseVolume (PDEVICE_OBJECT DeviceObject, PEXTENSION Extension)
 {
-	if (DeviceObject);	/* Remove compiler warning */
+	UNREFERENCED_PARAMETER (DeviceObject);	/* Remove compiler warning */
 
 	if (Extension->hDeviceFile != NULL)
 	{
@@ -738,7 +738,11 @@ void TCCloseVolume (PDEVICE_OBJECT DeviceObject, PEXTENSION Extension)
 		ZwClose (Extension->hDeviceFile);
 	}
 	ObDereferenceObject (Extension->pfoDeviceFile);
-	crypto_close (Extension->cryptoInfo);
+	if (Extension->cryptoInfo)
+	{
+		crypto_close (Extension->cryptoInfo);
+		Extension->cryptoInfo = NULL;
+	}
 }
 
 
@@ -752,7 +756,7 @@ NTSTATUS TCSendHostDeviceIoControlRequest (PDEVICE_OBJECT DeviceObject,
 	NTSTATUS ntStatus;
 	PIRP Irp;
 
-	if (DeviceObject);	/* Remove compiler warning */
+	UNREFERENCED_PARAMETER(DeviceObject);	/* Remove compiler warning */
 
 	KeClearEvent (&Extension->keVolumeEvent);
 
@@ -791,7 +795,7 @@ NTSTATUS COMPLETE_IRP (PDEVICE_OBJECT DeviceObject,
 	Irp->IoStatus.Status = IrpStatus;
 	Irp->IoStatus.Information = IrpInformation;
 
-	if (DeviceObject);	/* Remove compiler warning */
+	UNREFERENCED_PARAMETER (DeviceObject);	/* Remove compiler warning */
 
 #if EXTRA_INFO
 	if (!NT_SUCCESS (IrpStatus))
diff --git a/src/ExpandVolume/DlgExpandVolume.cpp b/src/ExpandVolume/DlgExpandVolume.cpp
new file mode 100644
index 0000000..d698293
--- /dev/null
+++ b/src/ExpandVolume/DlgExpandVolume.cpp
@@ -0,0 +1,732 @@
+/*
+
+Some portions of the source code contained in this file were derived from the
+source code of TrueCrypt 7.0a, which is governed by the TrueCrypt License 3.0
+that can be found in the file 'License.txt' in the folder 'TrueCrypt-License'.
+
+Modifications and additions to the original source code (contained in this file)
+and all other portions of this file are Copyright (c) 2009-2010 by Kih-Oskh or
+Copyright (c) 2012-2013 Josef Schneider <josef at netpage.dk>
+
+
+Some portions of the source code here are derived from 'Mount\Mount.c'
+
+-------------------------------------------------------------------------------
+
+Original legal notice of the TrueCrypt source:
+
+	 Legal Notice: Some portions of the source code contained in this file were
+	 derived from the source code of Encryption for the Masses 2.02a, which is
+	 Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License
+	 Agreement for Encryption for the Masses'. Modifications and additions to
+	 the original source code (contained in this file) and all other portions
+	 of this file are Copyright (c) 2003-2009 TrueCrypt Developers Association
+	 and are governed by the TrueCrypt License 3.0 the full text of which is
+	 contained in the file License.txt included in TrueCrypt binary and source
+	 code distribution packages.
+
+*/
+
+#include "Tcdefs.h"
+
+#include <time.h>
+#include <math.h>
+#include <dbt.h>
+#include <fcntl.h>
+#include <io.h>
+#include <sys/stat.h>
+#include <windowsx.h>
+#include <stdio.h>
+
+#include "Apidrvr.h"
+#include "Volumes.h"
+#include "Crypto.h"
+#include "Dlgcode.h"
+#include "Language.h"
+#include "Pkcs5.h"
+#include "Random.h"
+// #include "../Mount/Mount.h"
+
+#include "../Common/Dictionary.h"
+#include "../Common/Common.h"
+#include "../Common/Resource.h"
+#include "../Common/SecurityToken.h"
+#include "../Common/Progress.h"
+
+#include "ExpandVolume.h"
+#include "Resource.h"
+
+// TO DO: display sector sizes different than 512 bytes
+#define SECTOR_SIZE_MSG                     512
+
+#define TIMER_ID_RANDVIEW								0xff
+#define TIMER_INTERVAL_RANDVIEW							50
+
+// see definition of enum EV_FileSystem
+const char * szFileSystemStr[3] = {"RAW","FAT","NTFS"};
+
+// prototypes for internal functions
+BOOL CALLBACK ExpandVolSizeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
+BOOL CALLBACK ExpandVolProgressDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
+
+namespace VeraCryptExpander
+{
+/* defined in WinMain.c, referenced by ExpandVolumeWizard() */
+int ExtcvAskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, BOOL* truecryptMode, char *titleStringId, BOOL enableMountOptions);
+}
+
+
+int GetSpaceString(char *dest, size_t maxlen, uint64 size, BOOL bDevice)
+{
+	const char * szFmtBytes = "%.0lf %s";
+	const char * szFmtOther = "%.2lf %s";
+	const char * SuffixStr[] = {"Byte", "kB", "MB", "GB", "TB"};
+	const uint64 Muliplier[] = {1, BYTES_PER_KB, BYTES_PER_MB, BYTES_PER_GB, BYTES_PER_TB};
+	const int nMaxSuffix = sizeof(Muliplier)/sizeof(uint64) - 1;
+	int i;
+
+	for (i=1; i<=nMaxSuffix && size>Muliplier[i]; i++) ;
+
+	--i;
+
+	if (bDevice) {
+		char szTemp[512];
+
+		if (sprintf_s(szTemp, sizeof(szTemp),i?szFmtOther:szFmtBytes, size/(double)Muliplier[i], SuffixStr[i]) < 0 )
+			return -1;
+
+		return sprintf_s(dest, maxlen, "%I64u sectors (%s)", size/SECTOR_SIZE_MSG , szTemp);
+	}
+
+	return sprintf_s(dest, maxlen,i?szFmtOther:szFmtBytes, size/(double)Muliplier[i], SuffixStr[i]);
+}
+
+void SetCurrentVolSize(HWND hwndDlg, uint64 size)
+{
+	const uint64 Muliplier[] = {BYTES_PER_KB, BYTES_PER_MB, BYTES_PER_GB};
+	const int IdRadioBtn[] = {IDC_KB, IDC_MB, IDC_GB};
+	const int nMaxSuffix = sizeof(Muliplier)/sizeof(uint64) - 1;
+	int i;
+	char szTemp[256];
+
+	for (i=1; i<=nMaxSuffix && size>Muliplier[i]; i++) ;
+
+	--i;
+
+	SendDlgItemMessage (hwndDlg, IdRadioBtn[i], BM_SETCHECK, BST_CHECKED, 0);
+	StringCbPrintfA(szTemp,sizeof(szTemp),"%I64u",size/Muliplier[i]);
+	SetWindowText (GetDlgItem (hwndDlg, IDC_SIZEBOX), szTemp);
+}
+
+uint64 GetSizeBoxMultiplier(HWND hwndDlg)
+{
+	const uint64 Muliplier[] = {BYTES_PER_KB, BYTES_PER_MB, BYTES_PER_GB};
+	const int IdRadioBtn[] = {IDC_KB, IDC_MB, IDC_GB};
+	const int nMaxSuffix = sizeof(Muliplier)/sizeof(uint64) - 1;
+	int i;
+
+	for (i=nMaxSuffix; i>0 && !IsButtonChecked (GetDlgItem (hwndDlg, IdRadioBtn[i])); --i) ;
+
+	return Muliplier[i];
+}
+
+BOOL CALLBACK ExpandVolSizeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	static EXPAND_VOL_THREAD_PARAMS *pVolExpandParam;
+
+	WORD lw = LOWORD (wParam);
+
+	switch (msg)
+	{
+	case WM_INITDIALOG:
+		{
+			char szTemp[4096];
+
+			pVolExpandParam = (EXPAND_VOL_THREAD_PARAMS*)lParam;
+
+			EnableWindow (GetDlgItem (hwndDlg, IDC_SIZEBOX), !pVolExpandParam->bIsDevice);
+			EnableWindow (GetDlgItem (hwndDlg, IDC_KB), !pVolExpandParam->bIsDevice);
+			EnableWindow (GetDlgItem (hwndDlg, IDC_MB), !pVolExpandParam->bIsDevice);
+			EnableWindow (GetDlgItem (hwndDlg, IDC_GB), !pVolExpandParam->bIsDevice);
+
+			EnableWindow (GetDlgItem (hwndDlg, IDC_INIT_NEWSPACE),
+				!(pVolExpandParam->bIsLegacy && pVolExpandParam->bIsDevice));
+			SendDlgItemMessage (hwndDlg, IDC_INIT_NEWSPACE, BM_SETCHECK,
+				pVolExpandParam->bInitFreeSpace ? BST_CHECKED : BST_UNCHECKED, 0);
+
+			if (!pVolExpandParam->bIsDevice)
+				SetCurrentVolSize(hwndDlg,pVolExpandParam->oldSize);
+
+			SendMessage (GetDlgItem (hwndDlg, IDC_BOX_HELP), WM_SETFONT, (WPARAM) hBoldFont, (LPARAM) TRUE);
+
+			GetSpaceString(szTemp,sizeof(szTemp),pVolExpandParam->oldSize,pVolExpandParam->bIsDevice);
+
+			SetWindowText (GetDlgItem (hwndDlg, IDC_EXPAND_VOLUME_OLDSIZE), szTemp);
+			SetWindowText (GetDlgItem (hwndDlg, IDC_EXPAND_VOLUME_NAME), pVolExpandParam->szVolumeName);
+			SetWindowText (GetDlgItem (hwndDlg, IDC_EXPAND_FILE_SYSTEM), szFileSystemStr[pVolExpandParam->FileSystem]);
+
+			if (pVolExpandParam->bIsDevice)
+			{
+				GetSpaceString(szTemp,sizeof(szTemp),pVolExpandParam->newSize,TRUE);
+			}
+			else
+			{
+				char szHostFreeStr[256];
+
+				SetWindowText (GetDlgItem (hwndDlg, IDT_NEW_SIZE), "");
+				GetSpaceString(szHostFreeStr,sizeof(szHostFreeStr),pVolExpandParam->hostSizeFree,FALSE);
+				StringCbPrintfA (szTemp,sizeof(szTemp),"%s available on host drive", szHostFreeStr);
+			}
+
+			SetWindowText (GetDlgItem (hwndDlg, IDC_EXPAND_VOLUME_NEWSIZE), szTemp);
+
+			// set help text
+			if (pVolExpandParam->bIsDevice)
+			{
+				StringCbPrintfA (szTemp,sizeof(szTemp),"This is a device-based VeraCrypt volume.\n\nThe new volume size will be choosen automatically as the size of the host device.");
+				if (pVolExpandParam->bIsLegacy)
+					StringCbCatA(szTemp,sizeof(szTemp)," Note: filling the new space with random data is not supported for legacy volumes.");
+			}
+			else
+			{
+				StringCbPrintfA (szTemp, sizeof(szTemp),"Please specify the new size of the VeraCrypt volume (must be at least %I64u KB larger than the current size).",TC_MINVAL_FS_EXPAND/1024);
+			}
+			SetWindowText (GetDlgItem (hwndDlg, IDC_BOX_HELP), szTemp);
+
+		}
+		return 0;
+
+
+	case WM_COMMAND:
+		if (lw == IDCANCEL)
+		{
+			EndDialog (hwndDlg, lw);
+			return 1;
+		}
+
+		if (lw == IDOK)
+		{
+			char szTemp[4096];
+
+			pVolExpandParam->bInitFreeSpace = IsButtonChecked (GetDlgItem (hwndDlg, IDC_INIT_NEWSPACE));
+			if (!pVolExpandParam->bIsDevice) // for devices new size is set by calling function
+			{				
+				GetWindowText (GetDlgItem (hwndDlg, IDC_SIZEBOX), szTemp, sizeof (szTemp));
+				pVolExpandParam->newSize = _atoi64(szTemp) * GetSizeBoxMultiplier(hwndDlg);
+			}
+
+			EndDialog (hwndDlg, lw);
+			return 1;
+		}
+
+		return 0;
+	}
+
+	return 0;
+}
+
+
+extern "C" void AddProgressDlgStatus(HWND hwndDlg, const char* szText)
+{
+	HWND hwndCtrl;
+
+	hwndCtrl = GetDlgItem (hwndDlg,IDC_BOX_STATUS);
+	SendMessage(hwndCtrl,EM_REPLACESEL,FALSE,(LPARAM)szText);
+	SendMessage(hwndCtrl,EM_SCROLLCARET,0,0);
+}
+
+
+extern "C" void SetProgressDlgStatus(HWND hwndDlg, const char* szText)
+{
+	HWND hwndCtrl;
+
+	hwndCtrl = GetDlgItem (hwndDlg,IDC_BOX_STATUS);
+	SendMessage(hwndCtrl,EM_SETSEL,0,-1);
+	SendMessage(hwndCtrl,EM_REPLACESEL,FALSE,(LPARAM)szText);
+	SendMessage(hwndCtrl,EM_SCROLLCARET,0,0);
+}
+
+
+BOOL CALLBACK ExpandVolProgressDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	static EXPAND_VOL_THREAD_PARAMS *pProgressDlgParam;
+	static BOOL bVolTransformStarted = FALSE;
+	static BOOL showRandPool = TRUE;
+
+	WORD lw = LOWORD (wParam);
+
+	switch (msg)
+	{
+	case WM_INITDIALOG:
+		{
+			char szOldHostSize[512], szNewHostSize[512];
+
+			pProgressDlgParam = (EXPAND_VOL_THREAD_PARAMS*)lParam;
+			bVolTransformStarted = FALSE;
+			showRandPool = TRUE;
+
+			hCurPage = hwndDlg;
+			nPbar = IDC_PROGRESS_BAR;
+
+			GetSpaceString(szOldHostSize,sizeof(szOldHostSize),pProgressDlgParam->oldSize,pProgressDlgParam->bIsDevice);
+			GetSpaceString(szNewHostSize,sizeof(szNewHostSize),pProgressDlgParam->newSize,pProgressDlgParam->bIsDevice);
+
+			SetWindowText (GetDlgItem (hwndDlg, IDC_EXPAND_VOLUME_OLDSIZE), szOldHostSize);
+			SetWindowText (GetDlgItem (hwndDlg, IDC_EXPAND_VOLUME_NEWSIZE), szNewHostSize);
+			SetWindowText (GetDlgItem (hwndDlg, IDC_EXPAND_VOLUME_NAME), pProgressDlgParam->szVolumeName);
+			SetWindowText (GetDlgItem (hwndDlg, IDC_EXPAND_FILE_SYSTEM), szFileSystemStr[pProgressDlgParam->FileSystem]);
+			SetWindowText (GetDlgItem (hwndDlg, IDC_EXPAND_VOLUME_INITSPACE), pProgressDlgParam->bInitFreeSpace?"Yes":"No");
+
+			SendMessage (GetDlgItem (hwndDlg, IDC_BOX_STATUS), WM_SETFONT, (WPARAM) hBoldFont, (LPARAM) TRUE);
+
+			SendMessage (GetDlgItem (hwndDlg, IDC_RANDOM_BYTES), WM_SETFONT, (WPARAM) hFixedDigitFont, (LPARAM) TRUE);
+
+			// set status text
+			if ( !pProgressDlgParam->bInitFreeSpace && pProgressDlgParam->bIsLegacy )
+			{
+				showRandPool = FALSE;
+				EnableWindow (GetDlgItem (hwndDlg, IDC_DISPLAY_POOL_CONTENTS), FALSE);
+				EnableWindow (GetDlgItem (hwndDlg, IDC_RANDOM_BYTES), FALSE);
+				SetDlgItemText(hwndDlg, IDC_BOX_STATUS, "Click 'Continue' to expand the volume.");
+			}
+			else
+			{
+				SetDlgItemText(hwndDlg, IDC_BOX_STATUS, "IMPORTANT: Move your mouse as randomly as possible within this window. The longer you move it, the better. This significantly increases the cryptographic strength of the encryption keys. Then click 'Continue' to expand the volume.");
+			}
+
+			SendMessage (GetDlgItem (hwndDlg, IDC_DISPLAY_POOL_CONTENTS), BM_SETCHECK, showRandPool ? BST_CHECKED : BST_UNCHECKED, 0);
+			SetTimer (hwndDlg, TIMER_ID_RANDVIEW, TIMER_INTERVAL_RANDVIEW, NULL);
+		}
+		return 0;
+	case TC_APPMSG_VOL_TRANSFORM_THREAD_ENDED:
+		{
+			int nStatus = (int)lParam;
+
+			NormalCursor ();
+			if (nStatus != 0)
+			{
+				if ( nStatus != ERR_USER_ABORT )
+					AddProgressDlgStatus (hwndDlg, "Error: volume expansion failed.");
+				else
+					AddProgressDlgStatus (hwndDlg, "Error: operation aborted by user.");
+			}
+			else
+			{
+				AddProgressDlgStatus (hwndDlg, "Finished. Volume successfully expanded.");
+			}
+
+			SetWindowText (GetDlgItem (hwndDlg, IDOK), "Exit");
+			EnableWindow (GetDlgItem (hwndDlg, IDOK), TRUE);
+			EnableWindow (GetDlgItem (hwndDlg, IDCANCEL), FALSE);
+		}
+		return 1;
+
+	case WM_TIMER:
+
+		switch (wParam)
+		{
+		case TIMER_ID_RANDVIEW:
+			{
+				unsigned char tmp[16] = {0};
+				char szRndPool[64] = {0};
+
+				if (!showRandPool)
+					return 1;
+
+				RandpeekBytes (hwndDlg, tmp, sizeof (tmp));
+
+				StringCbPrintfA (szRndPool, sizeof(szRndPool), "%08X%08X%08X%08X", 
+					*((DWORD*) (tmp + 12)), *((DWORD*) (tmp + 8)), *((DWORD*) (tmp + 4)), *((DWORD*) (tmp)));
+
+				SetWindowText (GetDlgItem (hwndDlg, IDC_RANDOM_BYTES), szRndPool);
+
+				burn (tmp, sizeof(tmp));
+				burn (szRndPool, sizeof(szRndPool));
+			}
+			return 1;
+		}
+		return 0;
+
+	case WM_COMMAND:
+		if (lw == IDC_DISPLAY_POOL_CONTENTS)
+		{
+			showRandPool = IsButtonChecked (GetDlgItem (hwndDlg, IDC_DISPLAY_POOL_CONTENTS));
+			return 1;
+		}
+		if (lw == IDCANCEL)
+		{
+			if (bVolTransformStarted)
+			{
+				if (MessageBoxW (hwndDlg, L"Warning: Volume expansion is in progress!\n\nStopping now may result in a damaged volume.\n\nDo you really want to cancel?", lpszTitle, YES_NO|MB_ICONQUESTION|MB_DEFBUTTON2) == IDNO)
+					return 1;
+
+				// tell the volume transform thread to terminate
+				bVolTransformThreadCancel = TRUE;
+			}
+			EndDialog (hwndDlg, lw);
+			return 1;
+		}
+
+		if (lw == IDOK)
+		{
+			if (bVolTransformStarted)
+			{
+				// TransformThreadFunction finished -> OK button is now exit
+				EndDialog (hwndDlg, lw);
+			}
+			else
+			{
+				showRandPool = FALSE;
+				KillTimer (hwndDlg, TIMER_ID_RANDVIEW);
+				EnableWindow (GetDlgItem (hwndDlg, IDC_DISPLAY_POOL_CONTENTS), FALSE);
+				EnableWindow (GetDlgItem (hwndDlg, IDOK), FALSE);
+				SetProgressDlgStatus (hwndDlg, "Starting volume expansion ...\r\n");
+				bVolTransformStarted = TRUE;
+				pProgressDlgParam->hwndDlg = hwndDlg;
+				if ( _beginthread (volTransformThreadFunction, 0, pProgressDlgParam) == -1L )
+				{
+					handleError (hwndDlg, ERR_OS_ERROR);
+					EndDialog (hwndDlg, lw);
+				}
+				WaitCursor();
+			}
+			return 1;
+		}
+
+		return 0;
+	}
+
+	return 0;
+}
+
+
+typedef struct
+{
+	OpenVolumeContext *context;
+	const char *volumePath;
+	Password *password;
+	int pkcs5_prf;
+	BOOL truecryptMode;
+	BOOL write;
+	BOOL preserveTimestamps;
+	BOOL useBackupHeader;
+	int* nStatus;
+} OpenVolumeThreadParam;
+
+void CALLBACK OpenVolumeWaitThreadProc(void* pArg, HWND hwndDlg)
+{
+	OpenVolumeThreadParam* pThreadParam = (OpenVolumeThreadParam*) pArg;
+
+	*(pThreadParam)->nStatus = OpenVolume(pThreadParam->context, pThreadParam->volumePath, pThreadParam->password, pThreadParam->pkcs5_prf,
+		pThreadParam->truecryptMode, pThreadParam->write, pThreadParam->preserveTimestamps, pThreadParam->useBackupHeader);
+}
+
+/*
+	ExpandVolumeWizard
+
+	Expands a trucrypt volume (wizard for user interface)
+
+	Parameters:
+
+		hwndDlg : HWND
+			[in] handle to parent window (if any)
+
+		szVolume : char *
+			[in] Pointer to a string with the volume name (e.g. '\Device\Harddisk0\Partition1' or 'C:\topsecret.tc')
+
+	Return value:
+
+		none
+
+*/
+void ExpandVolumeWizard (HWND hwndDlg, char *lpszVolume)
+{
+	int nStatus = ERR_OS_ERROR;
+	wchar_t szTmp[4096];
+	Password VolumePassword;
+	int VolumePkcs5 = 0;
+	uint64 hostSize, volSize, hostSizeFree, maxSizeFS;
+	BOOL bIsDevice, bIsLegacy;
+	DWORD dwError;
+	int driveNo;
+	enum EV_FileSystem volFSType;
+	char rootPath[] = "A:\\";
+
+	switch (IsSystemDevicePath (lpszVolume, hwndDlg, TRUE))
+	{
+	case 1:
+	case 2:
+		MessageBoxW (hwndDlg, L"A VeraCrypt system volume can't be expanded.", lpszTitle, MB_OK|MB_ICONEXCLAMATION);
+		goto ret;
+	}
+
+	EnableElevatedCursorChange (hwndDlg);
+	WaitCursor();
+
+	if (IsMountedVolume (lpszVolume))
+	{
+		Warning ("DISMOUNT_FIRST", hwndDlg);
+		goto ret;
+	}
+
+	if (Randinit() != ERR_SUCCESS) {
+		if (CryptoAPILastError == ERROR_SUCCESS)
+			nStatus = ERR_RAND_INIT_FAILED;
+		else
+			nStatus = ERR_CAPI_INIT_FAILED;
+		goto error;
+	}
+
+	NormalCursor();
+
+	// Ask the user if there is a hidden volume
+	char *volTypeChoices[] = {0, "DOES_VOLUME_CONTAIN_HIDDEN", "VOLUME_CONTAINS_HIDDEN", "VOLUME_DOES_NOT_CONTAIN_HIDDEN", "IDCANCEL", 0};
+	switch (AskMultiChoice ((void **) volTypeChoices, FALSE, hwndDlg))
+	{
+	case 1:
+		MessageBoxW (hwndDlg, L"An outer volume containing a hidden volume can't be expanded, because this destroys the hidden volume.", lpszTitle, MB_OK|MB_ICONEXCLAMATION);
+		goto ret;
+
+	case 2:
+		break;
+
+	default:
+		nStatus = ERR_SUCCESS;
+		goto ret;
+	}
+
+	WaitCursor();
+
+	nStatus = QueryVolumeInfo(hwndDlg,lpszVolume,&hostSizeFree,&maxSizeFS);
+
+	if (nStatus!=ERR_SUCCESS)
+	{
+		nStatus = ERR_OS_ERROR;
+		goto error;
+	}
+
+	NormalCursor();
+
+	while (TRUE)
+	{
+		OpenVolumeContext expandVol;
+		BOOL truecryptMode = FALSE;
+
+		if (!VeraCryptExpander::ExtcvAskVolumePassword (hwndDlg, &VolumePassword, &VolumePkcs5, &truecryptMode, "ENTER_NORMAL_VOL_PASSWORD", FALSE))
+		{
+			goto ret;
+		}
+
+		EnableElevatedCursorChange (hwndDlg);
+		WaitCursor();
+
+		if (KeyFilesEnable && FirstKeyFile)
+			KeyFilesApply (hwndDlg, &VolumePassword, FirstKeyFile);
+
+		WaitCursor ();
+
+		OpenVolumeThreadParam threadParam;
+		threadParam.context = &expandVol;
+		threadParam.volumePath = lpszVolume;
+		threadParam.password = &VolumePassword;
+		threadParam.pkcs5_prf = VolumePkcs5;
+		threadParam.truecryptMode = FALSE;
+		threadParam.write = FALSE;
+		threadParam.preserveTimestamps = bPreserveTimestamp;
+		threadParam.useBackupHeader = FALSE;
+		threadParam.nStatus = &nStatus;
+
+		ShowWaitDialog (hwndDlg, TRUE, OpenVolumeWaitThreadProc, &threadParam);
+
+		NormalCursor ();
+
+		dwError = GetLastError();
+
+		if (nStatus == ERR_SUCCESS)
+		{
+			bIsDevice = expandVol.IsDevice;
+			bIsLegacy = expandVol.CryptoInfo->LegacyVolume;
+			hostSize = expandVol.HostSize;			
+			VolumePkcs5 = expandVol.CryptoInfo->pkcs5;
+			if ( bIsLegacy )
+			{
+				if ( bIsDevice ) 
+					volSize = 0; // updated later
+				else
+					volSize = hostSize;
+			}
+			else
+			{
+				volSize = GetVolumeSizeByDataAreaSize (expandVol.CryptoInfo->VolumeSize.Value, bIsLegacy);
+			}
+			CloseVolume (&expandVol);
+			break;
+		}
+		else if (nStatus != ERR_PASSWORD_WRONG)
+		{
+			SetLastError (dwError);
+			goto error;
+		}
+
+		NormalCursor();
+
+		handleError (hwndDlg, nStatus);
+	}
+
+	WaitCursor();
+
+	// auto mount the volume to check the file system type
+	nStatus=MountVolTemp(hwndDlg, lpszVolume, &driveNo, &VolumePassword, VolumePkcs5);
+
+	if (nStatus != ERR_SUCCESS)
+		goto error;
+
+	rootPath[0] += driveNo;
+
+	if ( !GetFileSystemType(rootPath,&volFSType) )
+		volFSType = EV_FS_TYPE_RAW;
+
+	if ( bIsLegacy && bIsDevice && volFSType == EV_FS_TYPE_NTFS )
+	{
+		uint64 NumberOfSectors;
+		DWORD BytesPerSector;
+		
+		if ( !GetNtfsNumberOfSectors(rootPath, &NumberOfSectors, &BytesPerSector) )
+			nStatus = ERR_OS_ERROR;
+
+		// NTFS reported size does not include boot sector copy at volume end
+		volSize = ( NumberOfSectors + 1 ) * BytesPerSector;
+	}
+
+	UnmountVolume (hwndDlg, driveNo, TRUE);
+
+	NormalCursor();
+
+	if (nStatus != ERR_SUCCESS)
+		goto error;
+
+	if ( bIsDevice && bIsLegacy && volFSType != EV_FS_TYPE_NTFS )
+	{
+		MessageBoxW (hwndDlg,
+			L"Expanding a device hosted legacy volume with no NTFS file system\n"
+			L"is unsupported.\n"
+			L"Note that expanding the VeraCrypt volume itself is not neccessary\n"
+			L"for legacy volumes.\n",
+			lpszTitle, MB_OK|MB_ICONEXCLAMATION);
+		goto ret;
+	}
+
+	// check if there is enough free space on host device/drive to expand the volume
+	if ( (bIsDevice && hostSize < volSize + TC_MINVAL_FS_EXPAND) || (!bIsDevice && hostSizeFree < TC_MINVAL_FS_EXPAND) )
+	{
+		MessageBoxW (hwndDlg, L"Not enough free space to expand the volume", lpszTitle, MB_OK|MB_ICONEXCLAMATION);
+		goto ret;
+	}
+
+	if (!bIsDevice && hostSize != volSize ) {
+		// there is some junk data at the end of the volume
+		if (MessageBoxW (hwndDlg, L"Warning: The container file is larger than the VeraCrypt volume area. The data after the VeraCrypt volume area will be overwritten.\n\nDo you want to continue?", lpszTitle, YES_NO|MB_ICONQUESTION|MB_DEFBUTTON2) == IDNO)
+			goto ret;
+	}
+
+	switch (volFSType)
+	{
+	case EV_FS_TYPE_NTFS:
+		break;
+	case EV_FS_TYPE_FAT:
+		if (MessageBoxW (hwndDlg,L"Warning: The VeraCrypt volume contains a FAT file system!\n\nOnly the VeraCrypt volume itself will be expanded, but not the file system.\n\nDo you want to continue?",
+			lpszTitle, YES_NO|MB_ICONQUESTION|MB_DEFBUTTON2) == IDNO)
+			goto ret;
+		break;
+	default:
+		if (MessageBoxW (hwndDlg,L"Warning: The VeraCrypt volume contains an unknown or no file system!\n\nOnly the VeraCrypt volume itself will be expanded, the file system remains unchanged.\n\nDo you want to continue?",
+			lpszTitle, YES_NO|MB_ICONQUESTION|MB_DEFBUTTON2) == IDNO)
+			goto ret;
+	}
+
+	EXPAND_VOL_THREAD_PARAMS VolExpandParam;
+
+	VolExpandParam.bInitFreeSpace = (bIsLegacy && bIsDevice) ? FALSE:TRUE;
+	VolExpandParam.szVolumeName = lpszVolume;
+	VolExpandParam.FileSystem = volFSType;
+	VolExpandParam.pVolumePassword = &VolumePassword;
+	VolExpandParam.VolumePkcs5 = VolumePkcs5;
+	VolExpandParam.bIsDevice = bIsDevice;
+	VolExpandParam.bIsLegacy = bIsLegacy;
+	VolExpandParam.oldSize = bIsDevice ? volSize : hostSize;
+	VolExpandParam.newSize = hostSize;
+	VolExpandParam.hostSizeFree = hostSizeFree;
+
+	while (1)
+	{
+		uint64 newVolumeSize;
+
+		if (IDCANCEL == DialogBoxParamW (hInst,
+			MAKEINTRESOURCEW (IDD_SIZE_DIALOG), hwndDlg,
+			(DLGPROC) ExpandVolSizeDlgProc, (LPARAM) &VolExpandParam))
+		{
+			goto ret;
+		}
+
+		newVolumeSize = VolExpandParam.newSize;
+
+		if ( !bIsDevice )
+		{
+			if ( newVolumeSize < hostSize + TC_MINVAL_FS_EXPAND)
+			{
+				StringCbPrintfW(szTmp,sizeof(szTmp),L"New volume size too small, must be at least %I64u kB larger than the current size.",TC_MINVAL_FS_EXPAND/BYTES_PER_KB);
+				MessageBoxW (hwndDlg, szTmp, lpszTitle, MB_OK | MB_ICONEXCLAMATION );
+				continue;
+			}
+
+			if ( newVolumeSize - hostSize > hostSizeFree )
+			{
+				StringCbPrintfW(szTmp,sizeof(szTmp),L"New volume size too large, not enough space on host drive.");
+				MessageBoxW (hwndDlg, szTmp, lpszTitle, MB_OK | MB_ICONEXCLAMATION );
+				continue;
+			}
+
+			if ( newVolumeSize>maxSizeFS )
+			{
+				StringCbPrintfW(szTmp,sizeof(szTmp),L"Maximum file size of %I64u MB on host drive exceeded.",maxSizeFS/BYTES_PER_MB);
+				MessageBoxW (hwndDlg, L"!\n",lpszTitle, MB_OK | MB_ICONEXCLAMATION );
+				continue;
+			}
+		}
+
+		if ( newVolumeSize > TC_MAX_VOLUME_SIZE )
+		{
+			// note: current limit TC_MAX_VOLUME_SIZE is 1 PetaByte
+			StringCbPrintfW(szTmp,sizeof(szTmp),L"Maximum VeraCrypt volume size of %I64u TB exceeded!\n",TC_MAX_VOLUME_SIZE/BYTES_PER_TB);
+			MessageBoxW (hwndDlg, szTmp,lpszTitle, MB_OK | MB_ICONEXCLAMATION );
+			if (bIsDevice)
+				break; // TODO: ask to limit volume size to TC_MAX_VOLUME_SIZE
+			continue;
+		}
+
+		break;
+	}
+
+	VolExpandParam.oldSize = volSize;
+
+	// start progress dialog
+	DialogBoxParamW (hInst,	MAKEINTRESOURCEW (IDD_EXPAND_PROGRESS_DLG), hwndDlg,
+		(DLGPROC) ExpandVolProgressDlgProc, (LPARAM) &VolExpandParam );
+
+ret:
+	nStatus = ERR_SUCCESS;
+
+error:
+
+	if (nStatus != 0)
+		handleError (hwndDlg, nStatus);
+
+	burn (&VolumePassword, sizeof (VolumePassword));
+
+	RestoreDefaultKeyFilesParam();
+	RandStop (FALSE);
+	NormalCursor();
+
+	return;
+}
+
diff --git a/src/ExpandVolume/ExpandVolume.c b/src/ExpandVolume/ExpandVolume.c
new file mode 100644
index 0000000..1d777a1
--- /dev/null
+++ b/src/ExpandVolume/ExpandVolume.c
@@ -0,0 +1,996 @@
+/*
+
+Some portions of the source code contained in this file were derived from the
+source code of TrueCrypt 7.0a, which is governed by the TrueCrypt License 3.0
+that can be found in the file 'License.txt' in the folder 'TrueCrypt-License'.
+
+Modifications and additions to the original source code (contained in this file)
+and all other portions of this file are Copyright (c) 2009-2010 by Kih-Oskh or
+Copyright (c) 2012-2013 Josef Schneider <josef at netpage.dk>
+
+TrueCrypt source files used to derive some portions of the source code in this
+file are:
+
+    - 'Mount\Mount.c'
+    - 'Common\Format.c'
+	- 'Common\Password.c'
+    - 'Format\Tcformat.c'
+
+-------------------------------------------------------------------------------
+
+Original legal notice of the TrueCrypt source files:
+
+	 Legal Notice: Some portions of the source code contained in this file were
+	 derived from the source code of Encryption for the Masses 2.02a, which is
+	 Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License
+	 Agreement for Encryption for the Masses'. Modifications and additions to
+	 the original source code (contained in this file) and all other portions
+	 of this file are Copyright (c) 2003-2009 TrueCrypt Developers Association
+	 and are governed by the TrueCrypt License 3.0 the full text of which is
+	 contained in the file License.txt included in TrueCrypt binary and source
+	 code distribution packages.
+
+*/
+
+#include "Tcdefs.h"
+
+#include <time.h>
+#include <math.h>
+#include <dbt.h>
+#include <fcntl.h>
+#include <io.h>
+#include <sys/stat.h>
+#include <windowsx.h>
+#include <stdio.h>
+
+#include "Apidrvr.h"
+#include "Volumes.h"
+#include "Crypto.h"
+#include "Dlgcode.h"
+#include "Language.h"
+#include "Pkcs5.h"
+#include "Random.h"
+#include "Progress.h"
+
+#include "InitDataArea.h"
+#include "ExpandVolume.h"
+#include "Resource.h"
+
+#define DEBUG_EXPAND_VOLUME
+
+#ifdef DEBUG_EXPAND_VOLUME
+#define DebugAddProgressDlgStatus  AddProgressDlgStatus
+#else
+#define DebugAddProgressDlgStatus(a,b)
+#endif
+
+
+HWND hCurPage;		/* Handle to window with progress bar (used by FormatNoFs)*/
+int nPbar;			/* Control ID of progress bar (used by FormatNoFs) */
+volatile BOOL bVolTransformThreadCancel = FALSE; /* TRUE if the user cancels/pauses volume expansion */
+
+// internal functions
+static int UpdateVolumeHeaderHostSize (char *lpszVolume, Password *pVolumePassword, HWND hwndDlg, uint64 newHostSize, uint64 *pDataSize, BOOL initFreeSpace);
+static int FsctlExtendVolume(char * szVolume, LONGLONG nTotalSectors );
+
+
+/*
+	MountVolTemp
+
+	Mounts a trucrypt volume temporarily (using any free drive number)
+
+	Parameters:
+
+		hwndDlg : HWND
+			[in] handle to parent window
+
+		volumePath : char *
+			[in] Pointer to a string that contains the volume path
+
+		driveNo : int *
+			[out] returns the drive number (0='A',...)
+
+		password : Password *
+			[in] Pointer to the volume password
+
+	Return value:
+
+		int with Truecrypt error code (ERR_SUCCESS on success)
+
+*/
+int MountVolTemp (HWND hwndDlg, char *volumePath, int *driveNo, Password *password, int pkcs5)
+{
+	MountOptions mountOptions;
+	ZeroMemory (&mountOptions, sizeof (mountOptions));
+
+	*driveNo = GetLastAvailableDrive ();
+
+	if (*driveNo == -1)
+	{
+		*driveNo = -2;
+		return ERR_NO_FREE_DRIVES;
+	}
+
+	mountOptions.ReadOnly = FALSE;
+	mountOptions.Removable = ConfigReadInt ("MountVolumesRemovable", FALSE);
+	mountOptions.ProtectHiddenVolume = FALSE;
+	mountOptions.PreserveTimestamp = bPreserveTimestamp;
+	mountOptions.PartitionInInactiveSysEncScope = FALSE;
+	mountOptions.UseBackupHeader = FALSE;
+
+	if (MountVolume (hwndDlg, *driveNo, volumePath, password, pkcs5, FALSE, FALSE, TRUE, &mountOptions, FALSE, FALSE) < 1)
+	{
+		*driveNo = -3;
+		return ERR_VOL_MOUNT_FAILED;
+	}
+	return 0;
+}
+
+
+/*
+	FsctlExtendVolume
+
+	Expands a volume by sending the FSCTL_EXTEND_VOLUME ioctl command to the volume
+
+	Parameters:
+
+		szVolume : char *
+			[in] Pointer to a string that contains the volume GUID
+
+		nTotalSectors : LONGLONG
+			[in] specifies the total size of the volume, in sectors
+
+	Return value:
+
+		int with Truecrypt error code (ERR_SUCCESS on success)
+
+	Remarks: only supported by NTFS and RAW file systems
+
+*/
+static int FsctlExtendVolume(char * szVolume, LONGLONG nTotalSectors )
+{
+	HANDLE hDevice;   // handle to the volume to be extended
+	BOOL bResult;     // results flag
+	DWORD nbytes;     // discard results
+	DWORD dwError;
+	int nStatus = ERR_OS_ERROR;
+
+	hDevice = CreateFile(szVolume,
+					GENERIC_READ,
+					FILE_SHARE_READ |
+					FILE_SHARE_WRITE,
+					NULL,
+					OPEN_EXISTING,
+					FILE_ATTRIBUTE_NORMAL,
+					NULL);
+
+	if (hDevice == INVALID_HANDLE_VALUE)
+		goto error;
+
+	bResult = DeviceIoControl(hDevice,
+							FSCTL_EXTEND_VOLUME,
+							&nTotalSectors, sizeof(nTotalSectors),
+							NULL, 0,
+							&nbytes,
+							(LPOVERLAPPED) NULL);
+
+	if (bResult)
+		nStatus = ERR_SUCCESS;
+
+error:
+
+	dwError = GetLastError ();
+
+	if (hDevice != INVALID_HANDLE_VALUE)
+		CloseHandle (hDevice);
+
+	SetLastError (dwError);
+
+	return nStatus;
+}
+
+
+BOOL GetFileSystemType(const char *szFileName, enum EV_FileSystem *pFS)
+{
+	char szFS[256];
+	char root[MAX_PATH];
+
+	*pFS = EV_FS_TYPE_RAW;
+
+	if (!GetVolumePathName (szFileName, root, sizeof (root)))
+		return FALSE;
+
+	if ( GetVolumeInformation (root, NULL, 0, NULL, NULL, NULL, szFS, sizeof(szFS)) )
+	{
+		if (!strncmp (szFS, "NTFS", 4))
+			*pFS = EV_FS_TYPE_NTFS;
+		else if (!strncmp (szFS, "FAT", 3)) // FAT16, FAT32
+			*pFS = EV_FS_TYPE_FAT;
+		else
+			*pFS = EV_FS_TYPE_RAW;
+	}
+	else
+	{
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+/*
+	QueryVolumeInfo
+
+	Retrieves the free disk space and file size limit on the truecrypt volume host
+
+	Parameters:
+
+		hwndDlg : HWND
+			[in] handle to parent window
+
+		lpszVolume : char *
+			[in] Pointer to a string that contains the volume path
+
+		pHostSizeFree : uint64 *
+			[out] returns the free space available on the host (always zero for devices)
+
+		pSizeLimitFS : uint64 *
+			[out] returns the file size limit of the host file system
+
+	Return value:
+
+		int with TrueCrypt error code (ERR_SUCCESS on success)
+
+*/
+int QueryVolumeInfo (HWND hwndDlg, const char *lpszVolume, uint64 * pHostSizeFree, uint64 * pSizeLimitFS )
+{
+	int nStatus = ERR_OS_ERROR;
+	char szDiskFile[TC_MAX_PATH], root[MAX_PATH];
+	BOOL bDevice;
+	enum EV_FileSystem fs;
+
+	*pSizeLimitFS = (uint64)-1;
+
+	CreateFullVolumePath (szDiskFile, sizeof(szDiskFile), lpszVolume, &bDevice);
+
+	if (bDevice)
+	{
+		*pHostSizeFree=0;
+		return ERR_SUCCESS;
+	}
+
+	if (!GetVolumePathName (szDiskFile, root, sizeof (root)))
+	{
+		nStatus = ERR_OS_ERROR;
+		goto error;
+	}
+
+	if( ! GetDiskFreeSpaceEx (root,(PULARGE_INTEGER)pHostSizeFree,NULL,NULL) )
+	{
+		nStatus = ERR_OS_ERROR;
+		goto error;
+	}
+
+	if ( ! GetFileSystemType(root,&fs) )
+	{
+		nStatus = ERR_OS_ERROR;
+		goto error;
+	}
+
+	/*	file size limits
+		FAT16 / FAT32 :	4 GB minus 1 byte (2^32 bytes minus 1 byte)
+		NTFS :	Architecturally : 16 exabytes minus 1 KB (26^4 bytes minus 1 KB)
+				Implementation (Windows Server 2008): 16 terabytes minus 64 KB (2^44 bytes minus 64 KB)
+	*/
+	switch (fs)
+	{
+	case EV_FS_TYPE_NTFS:
+		*pSizeLimitFS = 16 * BYTES_PER_TB - 64 * BYTES_PER_KB;
+		break;
+	case EV_FS_TYPE_FAT:
+		*pSizeLimitFS = 4 * BYTES_PER_GB - 1;
+		break;
+	default:
+		*pSizeLimitFS = (uint64)-1;
+	}
+
+	nStatus = ERR_SUCCESS;
+
+error:
+
+	return nStatus;
+}
+
+BOOL GetNtfsNumberOfSectors(char * rootPath, uint64 * pNumberOfSectors, DWORD *pBytesPerSector)
+{
+	HANDLE hDevice;
+	BOOL bResult;
+	DWORD nbytes, dwError;
+	size_t len;
+	NTFS_VOLUME_DATA_BUFFER ntfsvdb;
+	char szVolumeGUID[128];
+
+	// get volume name
+	if (!GetVolumeNameForVolumeMountPoint(rootPath,szVolumeGUID,sizeof(szVolumeGUID)))
+	{
+		return FALSE;
+	}
+
+	// strip trailing backslash from volume GUID (otherwise it means root dir)
+	len = strlen(szVolumeGUID);
+	if (len>0)
+		--len;
+	if (szVolumeGUID[len]=='\\')
+		szVolumeGUID[len]=0;
+
+	hDevice = CreateFile(szVolumeGUID,
+					GENERIC_READ,
+					FILE_SHARE_READ | FILE_SHARE_WRITE,
+					NULL,
+					OPEN_EXISTING,
+					FILE_ATTRIBUTE_NORMAL,
+					NULL);
+
+	if (hDevice == INVALID_HANDLE_VALUE)
+		return (FALSE);
+
+	bResult = DeviceIoControl(hDevice,
+							FSCTL_GET_NTFS_VOLUME_DATA,
+							 NULL, 0,
+							&ntfsvdb, sizeof(ntfsvdb),
+							&nbytes,
+							(LPOVERLAPPED) NULL);
+
+	if (bResult)
+	{
+		if (pNumberOfSectors)
+			*pNumberOfSectors = ntfsvdb.NumberSectors.QuadPart;
+		if (pBytesPerSector)
+			*pBytesPerSector = ntfsvdb.BytesPerSector;
+	}
+
+	dwError = GetLastError ();
+	CloseHandle(hDevice);
+	SetLastError (dwError);
+
+	return (bResult);
+}
+
+
+uint64 GetVolumeDataAreaSize (uint64 volumeSize, BOOL legacyVolume)
+{
+	uint64 reservedSize;
+
+	if (legacyVolume)
+		reservedSize = TC_VOLUME_HEADER_SIZE_LEGACY;
+	else
+		reservedSize = TC_TOTAL_VOLUME_HEADERS_SIZE;
+
+	if (volumeSize < reservedSize)
+		return 0;
+
+	return volumeSize - reservedSize;
+}
+
+
+uint64 GetVolumeSizeByDataAreaSize (uint64 dataAreaSize, BOOL legacyVolume)
+{
+	uint64 reservedSize;
+
+	if (legacyVolume)
+		reservedSize = TC_VOLUME_HEADER_SIZE_LEGACY;
+	else
+		reservedSize = TC_TOTAL_VOLUME_HEADERS_SIZE;
+
+	return dataAreaSize + reservedSize;
+}
+
+
+int ExtendFileSystem (HWND hwndDlg , char *lpszVolume, Password *pVolumePassword, int VolumePkcs5, uint64 newDataAreaSize)
+{
+	char szVolumeGUID[128];
+	int driveNo = -1;
+	char rootPath[] = "A:\\";
+	enum EV_FileSystem fs;
+	DWORD dwError;
+	int nStatus = ERR_SUCCESS;
+	DWORD BytesPerSector;
+
+	// mount and resize file system
+
+	DebugAddProgressDlgStatus (hwndDlg, "Mounting volume ...\r\n");
+
+	nStatus=MountVolTemp(hwndDlg, lpszVolume, &driveNo, pVolumePassword, VolumePkcs5);
+	if (nStatus!=ERR_SUCCESS)
+	{
+		driveNo = -1;
+		goto error;
+	}
+
+	rootPath[0] += driveNo;
+
+	if ( !GetFileSystemType(rootPath,&fs) )
+	{
+		dwError = GetLastError();
+		if (dwError == ERROR_UNRECOGNIZED_VOLUME)
+		{
+			// raw volume with unrecognized file system -> return with no error
+			nStatus = ERR_SUCCESS;
+			goto error;
+		}
+		nStatus = ERR_OS_ERROR;
+		goto error;
+	}
+
+	if (fs != EV_FS_TYPE_RAW && fs != EV_FS_TYPE_NTFS )
+	{
+		// FsctlExtendVolume only supports NTFS and RAW -> return with no error
+		nStatus = ERR_SUCCESS;
+		goto error;
+	}
+
+	// Get volume GUID
+	if (!GetVolumeNameForVolumeMountPoint(rootPath,szVolumeGUID,sizeof(szVolumeGUID)))
+	{
+		nStatus = ERR_OS_ERROR;
+		goto error;
+	}
+	else
+	{
+		// strip trailing backslash from volume GUID (otherwise it means root dir)
+		size_t len = strlen(szVolumeGUID);
+		if (len>0) --len;
+		if (szVolumeGUID[len]=='\\') szVolumeGUID[len]=0;
+	}
+
+	// Get Sector Size
+	if ( !GetNtfsNumberOfSectors(rootPath, NULL, &BytesPerSector) )
+	{
+		nStatus = ERR_OS_ERROR;
+		goto error;
+	}
+
+	DebugAddProgressDlgStatus (hwndDlg, "Extending file system ...\r\n");
+
+	// extend volume
+	nStatus = FsctlExtendVolume(szVolumeGUID, newDataAreaSize/BytesPerSector );
+
+error:
+
+	dwError = GetLastError();
+
+	if (driveNo>=0)
+	{
+		DebugAddProgressDlgStatus (hwndDlg, "Unmounting volume ...\r\n");
+		UnmountVolume (hwndDlg, driveNo, TRUE);
+	}
+
+	SetLastError (dwError);
+
+	return nStatus;
+}
+
+/*
+	ExpandVolume
+
+	Sets the volume size in the volume header (and backup header) to a larger value,
+	and resizes the filesystem within the volume (only NTFS supported)
+
+	Parameters:
+
+		hwndDlg : HWND
+			[in] handle to progress dialog
+
+		lpszVolume : char *
+			[in] Pointer to a string that contains the path to the truecrypt volume
+
+		pVolumePassword : Password *
+			[in] Pointer to the volume password
+
+		newHostSize : uint64
+			[in] new value of the volume host size (can be zero for devices,
+			     which means the volume should use all space of the host device)
+
+		initFreeSpace : BOOL
+			[in] if true, the new volume space will be initalized with random data
+
+	Return value:
+
+		int with Truecrypt error code (ERR_SUCCESS on success)
+
+	Remarks: a lot of code is from TrueCrypt 'Common\Password.c' :: ChangePwd()
+
+*/
+static int ExpandVolume (HWND hwndDlg, char *lpszVolume, Password *pVolumePassword, int VolumePkcs5, uint64 newHostSize, BOOL initFreeSpace)
+{
+	int nDosLinkCreated = 1, nStatus = ERR_OS_ERROR;
+	char szDiskFile[TC_MAX_PATH], szCFDevice[TC_MAX_PATH];
+	char szDosDevice[TC_MAX_PATH];
+	char buffer[TC_VOLUME_HEADER_EFFECTIVE_SIZE];
+	PCRYPTO_INFO cryptoInfo = NULL, ci = NULL;
+	void *dev = INVALID_HANDLE_VALUE;
+	DWORD dwError;
+	BOOL bDevice;
+	uint64 hostSize=0, newDataAreaSize, currentVolSize;
+	DWORD HostSectorSize;
+	FILETIME ftCreationTime;
+	FILETIME ftLastWriteTime;
+	FILETIME ftLastAccessTime;
+	BOOL bTimeStampValid = FALSE;
+	LARGE_INTEGER headerOffset;
+	BOOL backupHeader;
+	byte *wipeBuffer = NULL;
+	uint32 workChunkSize = TC_VOLUME_HEADER_GROUP_SIZE;
+
+	if (pVolumePassword->Length == 0) return -1;
+
+	WaitCursor ();
+
+	CreateFullVolumePath (szDiskFile, sizeof(szDiskFile), lpszVolume, &bDevice);
+
+	if (bDevice == FALSE)
+	{
+		strcpy (szCFDevice, szDiskFile);
+	}
+	else
+	{
+		nDosLinkCreated = FakeDosNameForDevice (szDiskFile, szDosDevice, sizeof(szDosDevice), szCFDevice, sizeof(szCFDevice), FALSE);
+
+		if (nDosLinkCreated != 0) // note: nStatus == ERR_OS_ERROR
+			goto error;
+	}
+
+	dev = CreateFile (szCFDevice, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
+
+	if (dev == INVALID_HANDLE_VALUE)
+		goto error;
+
+	if (bDevice)
+	{
+		/* This is necessary to determine the hidden volume header offset */
+
+		if (dev == INVALID_HANDLE_VALUE)
+		{
+			goto error;
+		}
+		else
+		{
+			PARTITION_INFORMATION diskInfo;
+			DWORD dwResult;
+			BOOL bResult;
+
+			bResult = GetPartitionInfo (lpszVolume, &diskInfo);
+
+			if (bResult)
+			{
+				hostSize = diskInfo.PartitionLength.QuadPart;
+				HostSectorSize = TC_SECTOR_SIZE_FILE_HOSTED_VOLUME; //TO DO: get the real host disk sector size
+			}
+			else
+			{
+				DISK_GEOMETRY driveInfo;
+
+				bResult = DeviceIoControl (dev, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0,
+					&driveInfo, sizeof (driveInfo), &dwResult, NULL);
+
+				if (!bResult)
+					goto error;
+
+				hostSize = driveInfo.Cylinders.QuadPart * driveInfo.BytesPerSector *
+					driveInfo.SectorsPerTrack * driveInfo.TracksPerCylinder;
+
+				HostSectorSize = driveInfo.BytesPerSector;
+			}
+
+			if (hostSize == 0)
+			{
+				nStatus = ERR_VOL_SIZE_WRONG;
+				goto error;
+			}
+		}
+	}
+	else
+	{
+		LARGE_INTEGER fileSize;
+		if (!GetFileSizeEx (dev, &fileSize))
+		{
+			nStatus = ERR_OS_ERROR;
+			goto error;
+		}
+
+		hostSize = fileSize.QuadPart;
+		HostSectorSize = TC_SECTOR_SIZE_FILE_HOSTED_VOLUME; //TO DO: get the real host disk sector size
+	}
+
+	if (Randinit ())
+	{
+		if (CryptoAPILastError == ERROR_SUCCESS)
+			nStatus = ERR_RAND_INIT_FAILED;
+		else
+			nStatus = ERR_CAPI_INIT_FAILED;
+		goto error;
+	}
+
+	if (!bDevice && bPreserveTimestamp)
+	{
+		/* Remember the container modification/creation date and time, (used to reset file date and time of
+		file-hosted volumes after password change (or attempt to), in order to preserve plausible deniability
+		of hidden volumes (last password change time is stored in the volume header). */
+
+		if (GetFileTime ((HANDLE) dev, &ftCreationTime, &ftLastAccessTime, &ftLastWriteTime) == 0)
+		{
+			bTimeStampValid = FALSE;
+			MessageBoxW (hwndDlg, GetString ("GETFILETIME_FAILED_PW"), lpszTitle, MB_OK | MB_ICONEXCLAMATION);
+		}
+		else
+			bTimeStampValid = TRUE;
+	}
+
+	// Seek the volume header
+	headerOffset.QuadPart = TC_VOLUME_HEADER_OFFSET;
+
+	if (!SetFilePointerEx ((HANDLE) dev, headerOffset, NULL, FILE_BEGIN))
+	{
+		nStatus = ERR_OS_ERROR;
+		goto error;
+	}
+
+	/* Read in volume header */
+	nStatus = _lread ((HFILE) dev, buffer, sizeof (buffer));
+	if (nStatus != sizeof (buffer))
+	{
+		// Windows may report EOF when reading sectors from the last cluster of a device formatted as NTFS
+		memset (buffer, 0, sizeof (buffer));
+	}
+
+	/* Try to decrypt the header */
+
+	nStatus = ReadVolumeHeader (FALSE, buffer, pVolumePassword, VolumePkcs5, FALSE, &cryptoInfo, NULL);
+	if (nStatus == ERR_CIPHER_INIT_WEAK_KEY)
+		nStatus = 0;	// We can ignore this error here
+
+	if (nStatus != 0)
+	{
+		cryptoInfo = NULL;
+		goto error;
+	}
+
+	if (cryptoInfo->HeaderFlags & TC_HEADER_FLAG_ENCRYPTED_SYSTEM)
+	{
+		nStatus = ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG;
+		goto error;
+	}
+
+	if (bDevice && newHostSize == 0)
+	{
+		// this means we shall take all host space as new volume size
+		newHostSize = hostSize;
+	}
+
+	if ( newHostSize % cryptoInfo->SectorSize != 0  || newHostSize > TC_MAX_VOLUME_SIZE || (bDevice && newHostSize > hostSize) )
+	{
+		// 1. must be multiple of sector size
+		// 2. truecrypt volume size limit
+		// 3. for devices volume size can't be larger than host size
+		cryptoInfo = NULL;
+		nStatus = ERR_PARAMETER_INCORRECT;
+		goto error;
+	}
+
+	newDataAreaSize = GetVolumeDataAreaSize (newHostSize, cryptoInfo->LegacyVolume);
+
+	if (cryptoInfo->LegacyVolume)
+	{
+		if (bDevice)
+		{
+			if (initFreeSpace)
+			{
+				// unsupported
+				cryptoInfo = NULL;
+				nStatus = ERR_PARAMETER_INCORRECT;
+				goto error;
+			}
+			else
+			{
+				// note: dummy value (only used for parameter checks)
+				cryptoInfo->VolumeSize.Value = newDataAreaSize - TC_MINVAL_FS_EXPAND;
+			}
+		}
+		else
+		{
+			cryptoInfo->VolumeSize.Value = GetVolumeDataAreaSize (hostSize, TRUE);
+		}
+	}
+
+	currentVolSize = GetVolumeSizeByDataAreaSize (cryptoInfo->VolumeSize.Value, cryptoInfo->LegacyVolume);
+
+	if ( newDataAreaSize < cryptoInfo->VolumeSize.Value + TC_MINVAL_FS_EXPAND )
+	{
+		// shrinking a volume or enlarging by less then TC_MINVAL_FS_EXPAND is not allowed
+		cryptoInfo = NULL;
+		nStatus = ERR_PARAMETER_INCORRECT;
+		goto error;
+	}
+
+	InitProgressBar ( newHostSize, currentVolSize, FALSE, FALSE, FALSE, TRUE);
+
+	if (bVolTransformThreadCancel)
+	{
+		SetLastError(0);
+		nStatus = ERR_USER_ABORT;
+		goto error;
+	}
+
+	if (!bDevice) {
+		LARGE_INTEGER liNewSize;
+
+		liNewSize.QuadPart=(LONGLONG)newHostSize;
+
+		// Preallocate the file
+		if (!SetFilePointerEx (dev, liNewSize, NULL, FILE_BEGIN)
+			|| !SetEndOfFile (dev)
+			|| SetFilePointer (dev, 0, NULL, FILE_BEGIN) != 0)
+		{
+			nStatus = ERR_OS_ERROR;
+			goto error;
+		}
+	}
+
+	if (initFreeSpace)
+	{
+		uint64 startSector;
+		int64 num_sectors;
+
+		// fill new space with random data
+		startSector = currentVolSize/HostSectorSize ;
+		num_sectors = (newHostSize/HostSectorSize) - startSector;
+
+		if (bDevice && !StartFormatWriteThread())
+		{
+			nStatus = ERR_OS_ERROR;
+			goto error;
+		}
+
+		DebugAddProgressDlgStatus(hwndDlg, "Writing random data to new space ...\r\n");
+
+		SetFormatSectorSize(HostSectorSize);
+		nStatus = FormatNoFs (hwndDlg, startSector, num_sectors, dev, cryptoInfo, FALSE);
+
+		dwError = GetLastError();
+		StopFormatWriteThread();
+		SetLastError (dwError);
+	}
+	else
+	{
+		UpdateProgressBar(newHostSize);
+	}
+
+	if (nStatus != ERR_SUCCESS)
+	{
+		dwError = GetLastError();
+		DebugAddProgressDlgStatus(hwndDlg, "Error: failed to write random data ...\r\n");
+		if ( !bDevice ) {
+			// restore original size of the container file
+			LARGE_INTEGER liOldSize;
+			liOldSize.QuadPart=(LONGLONG)hostSize;
+			if (!SetFilePointerEx (dev, liOldSize, NULL, FILE_BEGIN) || !SetEndOfFile (dev))
+			{
+				DebugAddProgressDlgStatus(hwndDlg, "Warning: failed to restore original size of the container file\r\n");
+			}
+		}
+		SetLastError (dwError);
+		goto error;
+	}
+
+	RandSetHashFunction (cryptoInfo->pkcs5);
+
+	// Re-encrypt the volume header forn non-legacy volumes: backup header first
+	backupHeader = TRUE;
+	headerOffset.QuadPart = TC_VOLUME_HEADER_OFFSET + newHostSize - TC_VOLUME_HEADER_GROUP_SIZE;
+
+	/* note: updating the header is not neccessary for legay volumes */
+	while ( !cryptoInfo->LegacyVolume )
+	{
+		if (backupHeader)
+			DebugAddProgressDlgStatus(hwndDlg, "Writing re-encrypted backup header ...\r\n");
+		else
+			DebugAddProgressDlgStatus(hwndDlg, "Writing re-encrypted primary header ...\r\n");
+
+		// Prepare new volume header
+		nStatus = CreateVolumeHeaderInMemory (hwndDlg, FALSE,
+			buffer,
+			cryptoInfo->ea,
+			cryptoInfo->mode,
+			pVolumePassword,
+			cryptoInfo->pkcs5,
+			(char*)(cryptoInfo->master_keydata),
+			&ci,
+			newDataAreaSize,
+			0, // hiddenVolumeSize
+			cryptoInfo->EncryptedAreaStart.Value,
+			newDataAreaSize,
+			cryptoInfo->RequiredProgramVersion,
+			cryptoInfo->HeaderFlags,
+			cryptoInfo->SectorSize,
+			TRUE ); // use slow poll
+
+		if (ci != NULL)
+			crypto_close (ci);
+
+		if (nStatus != 0)
+			goto error;
+
+		if (!SetFilePointerEx ((HANDLE) dev, headerOffset, NULL, FILE_BEGIN))
+		{
+			nStatus = ERR_OS_ERROR;
+			goto error;
+		}
+
+		nStatus = _lwrite ((HFILE) dev, buffer, TC_VOLUME_HEADER_EFFECTIVE_SIZE);
+		if (nStatus != TC_VOLUME_HEADER_EFFECTIVE_SIZE)
+		{
+			nStatus = ERR_OS_ERROR;
+			goto error;
+		}
+
+		if ( ( backupHeader && !initFreeSpace )
+			|| ( bDevice
+				&& !cryptoInfo->LegacyVolume
+				&& !cryptoInfo->hiddenVolume
+				&& cryptoInfo->HeaderVersion == 4	// BUG in TrueCrypt: doing this only for v4 make no sense
+				&& (cryptoInfo->HeaderFlags & TC_HEADER_FLAG_NONSYS_INPLACE_ENC) != 0
+				&& (cryptoInfo->HeaderFlags & ~TC_HEADER_FLAG_NONSYS_INPLACE_ENC) == 0 )
+			)
+		{
+			//DebugAddProgressDlgStatus(hwndDlg, "WriteRandomDataToReservedHeaderAreas() ...\r\n");
+			nStatus = WriteRandomDataToReservedHeaderAreas (hwndDlg, dev, cryptoInfo, newDataAreaSize, !backupHeader, backupHeader);
+			if (nStatus != ERR_SUCCESS)
+				goto error;
+		}
+
+		FlushFileBuffers (dev);
+
+		if (!backupHeader)
+			break;
+
+		backupHeader = FALSE;
+		headerOffset.QuadPart = TC_VOLUME_HEADER_OFFSET; // offset for main header
+	}
+
+	/* header successfully updated */
+	nStatus = ERR_SUCCESS;
+
+	if (bVolTransformThreadCancel)
+	{
+		nStatus = ERR_USER_ABORT;
+		goto error;
+	}
+
+	/* wipe old backup header */
+	if ( !cryptoInfo->LegacyVolume )
+	{		
+		byte wipeRandChars [TC_WIPE_RAND_CHAR_COUNT];
+		byte wipeRandCharsUpdate [TC_WIPE_RAND_CHAR_COUNT];
+		byte wipePass;
+		UINT64_STRUCT unitNo;
+		LARGE_INTEGER offset;
+		WipeAlgorithmId wipeAlgorithm = TC_WIPE_35_GUTMANN;
+
+		if (	!RandgetBytes (hwndDlg, wipeRandChars, TC_WIPE_RAND_CHAR_COUNT, TRUE)
+			|| !RandgetBytes (hwndDlg, wipeRandCharsUpdate, TC_WIPE_RAND_CHAR_COUNT, TRUE)
+			)
+		{
+			nStatus = ERR_OS_ERROR;
+			goto error;
+		}
+
+		DebugAddProgressDlgStatus(hwndDlg, "Wiping old backup header ...\r\n");
+
+		wipeBuffer = (byte *) TCalloc (workChunkSize);
+		if (!wipeBuffer)
+		{
+			nStatus = ERR_OUTOFMEMORY;
+			goto error;
+		}
+
+		offset.QuadPart = currentVolSize - TC_VOLUME_HEADER_GROUP_SIZE;
+		unitNo.Value = offset.QuadPart;
+
+		for (wipePass = 1; wipePass <= GetWipePassCount (wipeAlgorithm); ++wipePass)
+		{
+			if (!WipeBuffer (wipeAlgorithm, wipeRandChars, wipePass, wipeBuffer, workChunkSize))
+			{
+				ULONG i;
+				for (i = 0; i < workChunkSize; ++i)
+				{
+					wipeBuffer[i] = wipePass;
+				}
+
+				EncryptDataUnits (wipeBuffer, &unitNo, workChunkSize / ENCRYPTION_DATA_UNIT_SIZE, cryptoInfo);
+				memcpy (wipeRandCharsUpdate, wipeBuffer, sizeof (wipeRandCharsUpdate));
+			}
+
+			if ( !SetFilePointerEx (dev, offset, NULL, FILE_BEGIN)
+				|| _lwrite ((HFILE)dev, (LPCSTR)wipeBuffer, workChunkSize) == HFILE_ERROR
+				)
+			{
+				// Write error
+				DebugAddProgressDlgStatus(hwndDlg, "Warning: Failed to wipe old backup header\r\n");
+				MessageBoxW (hwndDlg, L"WARNING: Failed to wipe old backup header!\n\nIt may be possible to use the current volume password to decrypt the old backup header even after a future password change.\n", lpszTitle, MB_OK | MB_ICONEXCLAMATION);
+				if (wipePass == 1)
+					continue; // retry once
+				// non-critical error - it's better to continue
+				nStatus = ERR_SUCCESS;
+				goto error;
+			}
+			FlushFileBuffers(dev);
+			// we don't check FlushFileBuffers() return code, because it fails for devices
+			// (same implementation in password.c - a bug or not ???)
+		}
+
+		burn (wipeRandChars, TC_WIPE_RAND_CHAR_COUNT);
+		burn (wipeRandCharsUpdate, TC_WIPE_RAND_CHAR_COUNT);
+	}
+
+error:
+	dwError = GetLastError ();
+
+	if (wipeBuffer)
+	{
+		burn (wipeBuffer, workChunkSize);
+		TCfree (wipeBuffer);
+		wipeBuffer = NULL;
+	}
+
+	burn (buffer, sizeof (buffer));
+
+	if (cryptoInfo != NULL)
+		crypto_close (cryptoInfo);
+
+	if (bTimeStampValid)
+	{
+		// Restore the container timestamp (to preserve plausible deniability of possible hidden volume).
+		if (SetFileTime (dev, &ftCreationTime, &ftLastAccessTime, &ftLastWriteTime) == 0)
+			MessageBoxW (hwndDlg, GetString ("SETFILETIME_FAILED_PW"), lpszTitle, MB_OK | MB_ICONEXCLAMATION);
+	}
+
+	if (dev != INVALID_HANDLE_VALUE)
+		CloseHandle ((HANDLE) dev);
+
+	if (nDosLinkCreated == 0)
+		RemoveFakeDosName (szDiskFile, szDosDevice);
+
+	RandStop (FALSE);
+
+	if (bVolTransformThreadCancel)
+		nStatus = ERR_USER_ABORT;
+
+	SetLastError (dwError);
+
+	if (nStatus == ERR_SUCCESS)
+	{
+		nStatus = ExtendFileSystem (hwndDlg, lpszVolume, pVolumePassword, VolumePkcs5, newDataAreaSize);
+	}
+
+	return nStatus;
+}
+
+
+
+void __cdecl volTransformThreadFunction (void *pExpandDlgParam)
+{
+	int nStatus;
+	EXPAND_VOL_THREAD_PARAMS *pParam=(EXPAND_VOL_THREAD_PARAMS *)pExpandDlgParam;
+	HWND hwndDlg = (HWND) pParam->hwndDlg;
+
+	nStatus = ExpandVolume (hwndDlg, (char*)pParam->szVolumeName, pParam->pVolumePassword,
+		pParam->VolumePkcs5, pParam->newSize, pParam->bInitFreeSpace );
+
+	if (nStatus!=ERR_SUCCESS && nStatus!=ERR_USER_ABORT)
+			handleError (hwndDlg, nStatus);
+
+	bVolTransformThreadCancel = FALSE;
+
+	PostMessage (hwndDlg, TC_APPMSG_VOL_TRANSFORM_THREAD_ENDED, 0, nStatus);
+
+	_endthread ();
+}
diff --git a/src/ExpandVolume/ExpandVolume.h b/src/ExpandVolume/ExpandVolume.h
new file mode 100644
index 0000000..805f1c0
--- /dev/null
+++ b/src/ExpandVolume/ExpandVolume.h
@@ -0,0 +1,94 @@
+/*
+
+Some portions of the source code contained in this file were derived from the
+source code of TrueCrypt 7.0a, which is governed by the TrueCrypt License 3.0
+that can be found in the file 'License.txt' in the folder 'TrueCrypt-License'.
+
+Modifications and additions to the original source code (contained in this file)
+and all other portions of this file are Copyright (c) 2009-2010 by Kih-Oskh or
+Copyright (c) 2012-2013 Josef Schneider <josef at netpage.dk>
+
+TrueCrypt source files used to derive some portions of the source code in this
+file are:
+
+    - 'Mount\Mount.c'
+    - 'Common\Format.c'
+	- 'Common\Password.c'
+    - 'Format\Tcformat.c'
+
+-------------------------------------------------------------------------------
+
+Original legal notice of the TrueCrypt source files:
+
+	 Legal Notice: Some portions of the source code contained in this file were
+	 derived from the source code of Encryption for the Masses 2.02a, which is
+	 Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License
+	 Agreement for Encryption for the Masses'. Modifications and additions to
+	 the original source code (contained in this file) and all other portions
+	 of this file are Copyright (c) 2003-2009 TrueCrypt Developers Association
+	 and are governed by the TrueCrypt License 3.0 the full text of which is
+	 contained in the file License.txt included in TrueCrypt binary and source
+	 code distribution packages.
+
+*/
+
+#ifndef TC_HEADER_ExpandVolume
+#define TC_HEADER_ExpandVolume
+
+/*  NTFS must be extended at least by one cluster (max. cluster size is 64kB) */
+#define TC_MINVAL_FS_EXPAND	(64*1024LL)
+
+enum EV_FileSystem
+{
+	EV_FS_TYPE_RAW = 0,
+	EV_FS_TYPE_FAT = 1,
+	EV_FS_TYPE_NTFS = 2,
+};
+
+extern const char * szFileSystemStr[3];
+
+typedef struct
+{
+	uint64 oldSize;
+	uint64 newSize;
+	uint64 hostSizeFree;
+	const char *szVolumeName;
+	enum EV_FileSystem FileSystem;
+	BOOL bIsDevice;
+	BOOL bIsLegacy;
+	BOOL bInitFreeSpace;
+	Password *pVolumePassword;
+	int VolumePkcs5;
+	HWND hwndDlg;
+} EXPAND_VOL_THREAD_PARAMS;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern HWND hCurPage;		/* Handle to current wizard page */
+extern int nPbar;			/* Control ID of progress bar:- for format code */
+extern volatile BOOL bVolTransformThreadCancel; /* TRUE if the user cancels/pauses volume expansion */
+
+/* defined in ExpandVolume.c */
+uint64 GetVolumeDataAreaSize (uint64 volumeSize, BOOL legacyVolume);
+uint64 GetVolumeSizeByDataAreaSize (uint64 dataSize, BOOL legacyVolume);
+int QueryVolumeInfo (HWND hwndDlg, const char *lpszVolume, uint64 * pHostSizeFree, uint64 * pSizeLimitFS );
+int MountVolTemp (HWND hwndDlg, char *volumePath, int *driveNo, Password *password, int pkcs5);
+BOOL GetFileSystemType(const char *szFileName, enum EV_FileSystem *pFS);
+BOOL GetNtfsNumberOfSectors(char *rootPath, uint64 *pNumberOfSectors, DWORD *pBytesPerSector);
+void __cdecl volTransformThreadFunction (void *hwndDlgArg);
+
+/* defined in DlgExpandVolume.cpp */
+void AddProgressDlgStatus(HWND hwndDlg, const char* szText);
+void SetProgressDlgStatus(HWND hwndDlg, const char* szText);
+
+#ifdef __cplusplus
+}
+#endif
+
+/* defined in DlgExpandVolume.cpp */
+void ExpandVolumeWizard (HWND hwndDlg, char *lpszVolume);
+
+
+#endif /* TC_HEADER_ExpandVolume */
\ No newline at end of file
diff --git a/src/ExpandVolume/ExpandVolume.rc b/src/ExpandVolume/ExpandVolume.rc
new file mode 100644
index 0000000..a401caf
--- /dev/null
+++ b/src/ExpandVolume/ExpandVolume.rc
@@ -0,0 +1,320 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+#include "..\\common\\resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// German (Germany) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
+#ifdef _WIN32
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_SIZE_DIALOG DIALOGEX 0, 0, 376, 271
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt Expander"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    EDITTEXT        IDC_SIZEBOX,30,102,109,14,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
+    CONTROL         "&KB",IDC_KB,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,169,105,38,10
+    CONTROL         "&MB",IDC_MB,"Button",BS_AUTORADIOBUTTON,209,105,38,10
+    CONTROL         "&GB",IDC_GB,"Button",BS_AUTORADIOBUTTON,247,105,38,10
+    CONTROL         "Fill new space with random data",IDC_INIT_NEWSPACE,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,30,127,118,10
+    DEFPUSHBUTTON   "Continue",IDOK,15,238,84,18
+    PUSHBUTTON      "Cancel",IDCANCEL,277,238,84,18
+    LTEXT           "Help Text",IDC_BOX_HELP,15,165,346,58,0,WS_EX_CLIENTEDGE
+    GROUPBOX        "Enter new volume size",IDC_STATIC,15,83,346,63
+    RTEXT           "Current size: ",IDT_CURRENT_SIZE,27,42,46,8
+    CONTROL         "",IDC_EXPAND_VOLUME_OLDSIZE,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,80,42,275,8,WS_EX_TRANSPARENT
+    RTEXT           "New size: ",IDT_NEW_SIZE,28,54,45,8
+    LTEXT           "",IDC_EXPAND_VOLUME_NEWSIZE,80,54,275,8,0,WS_EX_TRANSPARENT
+    RTEXT           "Volume: ",IDT_VOL_NAME,31,18,42,8
+    GROUPBOX        "",IDC_STATIC,15,9,346,59
+    CONTROL         "",IDC_EXPAND_VOLUME_NAME,"Static",SS_SIMPLE | WS_GROUP,80,18,275,8,WS_EX_TRANSPARENT
+    RTEXT           "File system: ",IDT_FILE_SYS,31,30,42,8
+    CONTROL         "",IDC_EXPAND_FILE_SYSTEM,"Static",SS_SIMPLE | WS_GROUP,80,30,275,8,WS_EX_TRANSPARENT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO 
+BEGIN
+    IDD_SIZE_DIALOG, DIALOG
+    BEGIN
+        LEFTMARGIN, 15
+        RIGHTMARGIN, 361
+        VERTGUIDE, 30
+        TOPMARGIN, 14
+        BOTTOMMARGIN, 256
+    END
+END
+#endif    // APSTUDIO_INVOKED
+
+#endif    // German (Germany) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_MOUNT_DLG DIALOGEX 0, 0, 376, 271
+STYLE DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt Expander"
+MENU IDR_MENU
+CLASS "CustomDlg"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+    COMBOBOX        IDC_VOLUME,56,192,212,74,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Select &File...",IDC_SELECT_FILE,276,192,84,14
+    PUSHBUTTON      "Select D&evice...",IDC_SELECT_DEVICE,276,211,84,14
+    DEFPUSHBUTTON   "Start",IDOK,8,243,84,18,WS_GROUP
+    PUSHBUTTON      "E&xit",IDC_EXIT,284,243,84,18,WS_GROUP
+    CONTROL         112,IDC_LOGO,"Static",SS_BITMAP | SS_NOTIFY | WS_BORDER,16,192,27,31
+    GROUPBOX        "Volume",IDT_VOLUME,8,179,360,53
+    CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDFRAME,1,0,373,147
+    GROUPBOX        "",IDC_STATIC,282,238,88,24
+    GROUPBOX        "",IDC_STATIC,6,238,88,24
+    GROUPBOX        "",IDC_STATIC,1,147,373,123,BS_CENTER
+    LTEXT           "1. Select the VeraCrypt volume to be expanded\n2. Click the 'Start' button",IDC_STATIC,15,156,293,21
+    LTEXT           "Static",IDC_INFOEXPAND,8,6,361,134,SS_NOPREFIX | SS_SUNKEN,WS_EX_STATICEDGE
+END
+
+IDD_PASSWORD_DLG DIALOGEX 0, 0, 322, 91
+STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
+CAPTION "Enter VeraCrypt Volume Password"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+    EDITTEXT        IDC_PASSWORD,69,8,166,14,ES_PASSWORD | ES_AUTOHSCROLL
+    CONTROL         "Cache passwords and keyfil&es in memory",IDC_CACHE,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,50,153,10
+    CONTROL         "&Display password",IDC_SHOW_PASSWORD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,63,83,10
+    CONTROL         "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,75,83,11
+    PUSHBUTTON      "&Keyfiles...",IDC_KEY_FILES,171,72,64,14
+    PUSHBUTTON      "Mount Opti&ons...",IDC_MOUNT_OPTIONS,243,72,64,14
+    DEFPUSHBUTTON   "OK",IDOK,243,8,64,14
+    PUSHBUTTON      "Cancel",IDCANCEL,243,25,64,14
+    RTEXT           "Password:",IDT_PASSWORD,0,10,65,13
+    COMBOBOX        IDC_PKCS5_PRF_ID,69,26,86,90,CBS_DROPDOWNLIST | WS_TABSTOP
+    RTEXT           "PKCS-5 PRF:",IDT_PKCS5_PRF,0,27,65,13
+    CONTROL         "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,28,76,10
+END
+
+IDD_EXPAND_PROGRESS_DLG DIALOGEX 0, 0, 376, 271
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt Expander"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+    RTEXT           "Current size: ",IDT_CURRENT_SIZE,27,40,46,8
+    CONTROL         "",IDC_EXPAND_VOLUME_OLDSIZE,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,80,40,275,8,WS_EX_TRANSPARENT
+    RTEXT           "New size: ",IDT_NEW_SIZE,28,52,45,8
+    LTEXT           "",IDC_EXPAND_VOLUME_NEWSIZE,80,52,275,8,0,WS_EX_TRANSPARENT
+    CONTROL         "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,22,96,332,12
+    RTEXT           "",IDC_TIMEREMAIN,275,114,42,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+    RTEXT           "",IDC_WRITESPEED,178,114,42,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+    LTEXT           "",IDC_BYTESWRITTEN,77,114,39,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+    RTEXT           "Done",IDT_DONE,53,115,22,8
+    RTEXT           "Speed",IDT_SPEED,142,115,34,8
+    RTEXT           "Left",IDT_LEFT,248,115,25,8
+    GROUPBOX        "",IDC_STATIC,15,84,346,49
+    RTEXT           "Volume: ",IDT_VOL_NAME,31,16,42,8
+    GROUPBOX        "",IDC_STATIC,15,7,346,72
+    CONTROL         "",IDC_EXPAND_VOLUME_NAME,"Static",SS_SIMPLE | WS_GROUP,80,16,275,8,WS_EX_TRANSPARENT
+    DEFPUSHBUTTON   "Continue",IDOK,15,238,84,18
+    PUSHBUTTON      "Cancel",IDCANCEL,277,238,84,18
+    EDITTEXT        IDC_BOX_STATUS,15,162,346,66,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL
+    CONTROL         "",IDC_EXPAND_VOLUME_INITSPACE,"Static",SS_SIMPLE | WS_GROUP,80,64,275,8,WS_EX_TRANSPARENT
+    RTEXT           "Fill new space: ",IDT_INIT_SPACE,20,64,53,8
+    RTEXT           "File system: ",IDT_FILE_SYS,31,28,42,8
+    CONTROL         "",IDC_EXPAND_FILE_SYSTEM,"Static",SS_SIMPLE | WS_GROUP,80,28,275,8,WS_EX_TRANSPARENT
+    RTEXT           "Random Pool: ",IDT_RANDOM_POOL2,20,144,53,8
+    CONTROL         "",IDC_RANDOM_BYTES,"Static",SS_SIMPLE | WS_GROUP,80,144,149,8,WS_EX_TRANSPARENT
+    CONTROL         "",IDC_DISPLAY_POOL_CONTENTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,236,142,14,12
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO 
+BEGIN
+    IDD_MOUNT_DLG, DIALOG
+    BEGIN
+        RIGHTMARGIN, 369
+        VERTGUIDE, 8
+        BOTTOMMARGIN, 269
+    END
+
+    IDD_PASSWORD_DLG, DIALOG
+    BEGIN
+        BOTTOMMARGIN, 63
+    END
+
+    IDD_EXPAND_PROGRESS_DLG, DIALOG
+    BEGIN
+        RIGHTMARGIN, 361
+        VERTGUIDE, 15
+        VERTGUIDE, 73
+        VERTGUIDE, 80
+        VERTGUIDE, 355
+        TOPMARGIN, 9
+        BOTTOMMARGIN, 256
+        HORZGUIDE, 162
+    END
+END
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// HEADER
+//
+
+IDR_MOUNT_RSRC_HEADER   HEADER                  "resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,6,3
+ PRODUCTVERSION 1,0,6,3
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName", "IDRIX"
+            VALUE "FileDescription", "VeraCrypt Expander"
+            VALUE "FileVersion", "1.0f-2"
+            VALUE "LegalTrademarks", "VeraCrypt"
+            VALUE "OriginalFilename", "VeraCryptExpander.exe"
+            VALUE "ProductName", "VeraCrypt"
+            VALUE "ProductVersion", "1.0f-2"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "#include ""..\\\\common\\\\resource.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "#include ""..\\\\common\\\\common.rc""\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_LOGO_96DPI          BITMAP                  "Logo_96dpi.bmp"
+IDB_LOGO_288DPI         BITMAP                  "Logo_288dpi.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MENU MENUEX 
+BEGIN
+    MENUITEM "About",                       IDM_ABOUT,MFT_STRING,MFS_ENABLED
+    MENUITEM "Homepage",                    IDM_HOMEPAGE,MFT_STRING | MFT_RIGHTJUSTIFY,MFS_ENABLED
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE 
+BEGIN
+    IDS_UACSTRING           "VeraCrypt Expander"
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#include "..\\common\\common.rc"
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/src/ExpandVolume/ExpandVolume.vcproj b/src/ExpandVolume/ExpandVolume.vcproj
new file mode 100644
index 0000000..5881884
--- /dev/null
+++ b/src/ExpandVolume/ExpandVolume.vcproj
@@ -0,0 +1,672 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="ExpandVolume"
+	ProjectGUID="{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}"
+	RootNamespace="ExpandVolume"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="Debug"
+			IntermediateDirectory="Debug"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+				CommandLine=""
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				AdditionalIncludeDirectories=""
+				TypeLibraryName="$(SolutionDir)/$(ProjectName)/$(ProjectName).tlb"
+				OutputDirectory=""
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\pkcs11"
+				PreprocessorDefinitions="VCEXPANDER;TCMOUNT;WIN32;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+				MinimalRebuild="true"
+				ExceptionHandling="1"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				BufferSecurityCheck="true"
+				EnableFunctionLevelLinking="false"
+				UsePrecompiledHeader="0"
+				BrowseInformation="0"
+				BrowseInformationFile=""
+				WarningLevel="3"
+				DebugInformationFormat="4"
+				DisableSpecificWarnings="4311"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="version.lib comctl32.lib setupapi.lib ..\Crypto\Debug\crypto.lib"
+				OutputFile="$(OutDir)/VeraCryptExpander.exe"
+				LinkIncremental="2"
+				GenerateManifest="false"
+				IgnoreAllDefaultLibraries="false"
+				GenerateDebugInformation="true"
+				ProgramDatabaseFile="$(OutDir)/ExpandVolume.pdb"
+				SubSystem="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="2"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+				AdditionalManifestFiles="VeraCryptExpander.manifest"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				CommandLine="md "..\Debug\Setup Files" 2>NUL:&#x0D;&#x0A;copy Debug\VeraCryptExpander.exe "..\Debug\Setup Files" >NUL:"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				AdditionalIncludeDirectories=""
+				TypeLibraryName="$(SolutionDir)/Mount/$(ProjectName).tlb"
+				OutputDirectory=""
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalOptions="/w34189"
+				Optimization="2"
+				AdditionalIncludeDirectories="..\Common;..\Crypto;..\;..\pkcs11"
+				PreprocessorDefinitions="VCEXPANDER;TCMOUNT;WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS"
+				RuntimeLibrary="0"
+				BufferSecurityCheck="true"
+				UsePrecompiledHeader="0"
+				AssemblerOutput="2"
+				AssemblerListingLocation="$(IntDir)/"
+				WarningLevel="3"
+				DebugInformationFormat="0"
+				DisableSpecificWarnings="4311"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="comctl32.lib setupapi.lib version.lib ..\Crypto\Release\crypto.lib"
+				OutputFile="$(OutDir)/VeraCryptExpander.exe"
+				LinkIncremental="1"
+				GenerateManifest="false"
+				IgnoreAllDefaultLibraries="false"
+				GenerateDebugInformation="false"
+				GenerateMapFile="true"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="2"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+				AdditionalManifestFiles="VeraCryptExpander.manifest"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+				CommandLine="copy Release\VeraCryptExpander.exe "..\Release\Setup Files\""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+		<ProjectReference
+			ReferencedProjectIdentifier="{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}"
+			RelativePathToProject=".\Crypto\Crypto.vcproj"
+		/>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath=".\DlgExpandVolume.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\ExpandVolume.c"
+				>
+			</File>
+			<File
+				RelativePath=".\InitDataArea.c"
+				>
+			</File>
+			<File
+				RelativePath=".\WinMain.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						CompileAs="2"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						CompileAs="2"
+					/>
+				</FileConfiguration>
+			</File>
+			<Filter
+				Name="Common"
+				>
+				<File
+					RelativePath="..\Common\BaseCom.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\BootEncryption.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Cmdline.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Combo.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Crc.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Crypto.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Dictionary.c"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							CompileAs="2"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							CompileAs="2"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\Common\Dlgcode.c"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							CompileAs="2"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							CompileAs="2"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\Common\EncryptionThreadPool.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Endian.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\GfMul.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Keyfiles.c"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							CompileAs="2"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							CompileAs="2"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\Common\Language.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Password.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Pkcs5.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Progress.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Random.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Registry.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\SecurityToken.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Tests.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Volumes.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Wipe.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Wipe.h"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Xml.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Common\Xts.c"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Mount"
+				>
+				<File
+					RelativePath="..\Mount\Favorites.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\Mount\Hotkeys.c"
+					>
+				</File>
+				<File
+					RelativePath="..\Mount\MainCom.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\Mount\MainCom.idl"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCMIDLTool"
+							OutputDirectory="$(SolutionDir)/Mount"
+							HeaderFileName="$(SolutionDir)/Mount/$(InputName)_h.h"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCMIDLTool"
+							OutputDirectory="$(SolutionDir)/Mount"
+							HeaderFileName="$(SolutionDir)/Mount/$(InputName)_h.h"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\Mount\Mount.c"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							CompileAs="2"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							CompileAs="2"
+						/>
+					</FileConfiguration>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\Common\Apidrvr.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\BaseCom.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\BootEncryption.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Cmdline.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Combo.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Common.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Crc.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Crypto.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Dictionary.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Dlgcode.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\EncryptionThreadPool.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Exception.h"
+				>
+			</File>
+			<File
+				RelativePath=".\ExpandVolume.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\GfMul.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Hotkeys.h"
+				>
+			</File>
+			<File
+				RelativePath=".\InitDataArea.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Keyfiles.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Language.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Mount\MainCom.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Mount\Mount.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Password.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Pkcs5.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Progress.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Random.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Registry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Resource.h"
+				>
+			</File>
+			<File
+				RelativePath=".\resource.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\SecurityToken.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Tcdefs.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Tests.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Volumes.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Xml.h"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Xts.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+			<File
+				RelativePath=".\ExpandVolume.rc"
+				>
+			</File>
+			<File
+				RelativePath=".\Logo_288dpi.bmp"
+				>
+			</File>
+			<File
+				RelativePath=".\Logo_96dpi.bmp"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Textual_logo_288dpi.bmp"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Textual_logo_96dpi.bmp"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\Textual_logo_background.bmp"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\VeraCrypt.ico"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\VeraCrypt_mounted.ico"
+				>
+			</File>
+			<File
+				RelativePath="..\Common\VeraCrypt_Volume.ico"
+				>
+			</File>
+			<File
+				RelativePath=".\VeraCryptExpander.manifest"
+				>
+			</File>
+			<Filter
+				Name="Common"
+				>
+				<File
+					RelativePath="..\Common\Common.rc"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCResourceCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCResourceCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\Common\Language.xml"
+					>
+				</File>
+			</Filter>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/src/ExpandVolume/InitDataArea.c b/src/ExpandVolume/InitDataArea.c
new file mode 100644
index 0000000..a3793e8
--- /dev/null
+++ b/src/ExpandVolume/InitDataArea.c
@@ -0,0 +1,358 @@
+/*
+
+Most of the source code contained in this file is taken from the source code of
+TrueCrypt 7.0a, which is governed by the TrueCrypt License 3.0 that can be found
+in the file 'License.txt' in the folder 'TrueCrypt-License'.
+
+Modifications and additions to the original source code (contained in this file)
+and all other portions of this file are Copyright (c) 2009-2010 by Kih-Oskh or
+Copyright (c) 2012-2013 Josef Schneider <josef at netpage.dk>
+
+
+Source code here is copied from 'Common/Format.c' with the following changes:
+
+	- functions removed:
+		GetVolumeDataAreaSize (BOOL hiddenVolume, uint64 volumeSize)
+		TCFormatVolume (volatile FORMAT_VOL_PARAMETERS *volParams)
+		FormatNtfs (int driveNo, int clusterSize)
+		FormatExCallback (int command, DWORD subCommand, PVOID parameter)
+
+	- variables removed:
+		volatile BOOLEAN FormatExResult;
+
+	- removed static linkage class from StartFormatWriteThread() and
+	  StopFormatWriteThread()
+
+	- new functions:
+		SetFormatSectorSize(uint32 sector_size)
+
+
+-------------------------------------------------------------------------------
+
+Original legal notice of the TrueCrypt source:
+
+ Legal Notice: Some portions of the source code contained in this file were
+ derived from the source code of Encryption for the Masses 2.02a, which is
+ Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License
+ Agreement for Encryption for the Masses'. Modifications and additions to
+ the original source code (contained in this file) and all other portions
+ of this file are Copyright (c) 2003-2010 TrueCrypt Developers Association
+ and are governed by the TrueCrypt License 3.0 the full text of which is
+ contained in the file License.txt included in TrueCrypt binary and source
+ code distribution packages. */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "Tcdefs.h"
+
+#include "Common.h"
+#include "Crypto.h"
+#include "Random.h"
+#include "Volumes.h"
+
+#include "Apidrvr.h"
+#include "Dlgcode.h"
+#include "Language.h"
+#include "Progress.h"
+#include "Resource.h"
+
+#include "InitDataArea.h"
+
+int FormatWriteBufferSize = 1024 * 1024;
+static uint32 FormatSectorSize = 0;
+
+void SetFormatSectorSize(uint32 sector_size)
+{
+	FormatSectorSize = sector_size;
+}
+
+int FormatNoFs (HWND hwndDlg, unsigned __int64 startSector, __int64 num_sectors, void * dev, PCRYPTO_INFO cryptoInfo, BOOL quickFormat)
+{
+	int write_buf_cnt = 0;
+	char sector[TC_MAX_VOLUME_SECTOR_SIZE], *write_buf;
+	unsigned __int64 nSecNo = startSector;
+	int retVal = 0;
+	DWORD err;
+	char temporaryKey[MASTER_KEYDATA_SIZE];
+	char originalK2[MASTER_KEYDATA_SIZE];
+
+	LARGE_INTEGER startOffset;
+	LARGE_INTEGER newOffset;
+
+	// Seek to start sector
+	startOffset.QuadPart = startSector * FormatSectorSize;
+	if (!SetFilePointerEx ((HANDLE) dev, startOffset, &newOffset, FILE_BEGIN)
+		|| newOffset.QuadPart != startOffset.QuadPart)
+	{
+		return ERR_OS_ERROR;
+	}
+
+	write_buf = (char *)TCalloc (FormatWriteBufferSize);
+	if (!write_buf)
+		return ERR_OUTOFMEMORY;
+
+	VirtualLock (temporaryKey, sizeof (temporaryKey));
+	VirtualLock (originalK2, sizeof (originalK2));
+
+	memset (sector, 0, sizeof (sector));
+
+	// Remember the original secondary key (XTS mode) before generating a temporary one
+	memcpy (originalK2, cryptoInfo->k2, sizeof (cryptoInfo->k2));
+
+	/* Fill the rest of the data area with random data */
+
+	if(!quickFormat)
+	{
+		/* Generate a random temporary key set to be used for "dummy" encryption that will fill
+		the free disk space (data area) with random data.  This is necessary for plausible
+		deniability of hidden volumes. */
+
+		// Temporary master key
+		if (!RandgetBytes (hwndDlg, temporaryKey, EAGetKeySize (cryptoInfo->ea), FALSE))
+			goto fail;
+
+		// Temporary secondary key (XTS mode)
+		if (!RandgetBytes (hwndDlg, cryptoInfo->k2, sizeof cryptoInfo->k2, FALSE))
+			goto fail;
+
+		retVal = EAInit (cryptoInfo->ea, temporaryKey, cryptoInfo->ks);
+		if (retVal != ERR_SUCCESS)
+			goto fail;
+
+		if (!EAInitMode (cryptoInfo))
+		{
+			retVal = ERR_MODE_INIT_FAILED;
+			goto fail;
+		}
+
+		while (num_sectors--)
+		{
+			if (WriteSector (dev, sector, write_buf, &write_buf_cnt, &nSecNo,
+				cryptoInfo) == FALSE)
+				goto fail;
+		}
+
+		if (!FlushFormatWriteBuffer (dev, write_buf, &write_buf_cnt, &nSecNo, cryptoInfo))
+			goto fail;
+	}
+	else
+		nSecNo = num_sectors;
+
+	UpdateProgressBar (nSecNo * FormatSectorSize);
+
+	// Restore the original secondary key (XTS mode) in case NTFS format fails and the user wants to try FAT immediately
+	memcpy (cryptoInfo->k2, originalK2, sizeof (cryptoInfo->k2));
+
+	// Reinitialize the encryption algorithm and mode in case NTFS format fails and the user wants to try FAT immediately
+	retVal = EAInit (cryptoInfo->ea, cryptoInfo->master_keydata, cryptoInfo->ks);
+	if (retVal != ERR_SUCCESS)
+		goto fail;
+	if (!EAInitMode (cryptoInfo))
+	{
+		retVal = ERR_MODE_INIT_FAILED;
+		goto fail;
+	}
+
+	burn (temporaryKey, sizeof(temporaryKey));
+	burn (originalK2, sizeof(originalK2));
+	VirtualUnlock (temporaryKey, sizeof (temporaryKey));
+	VirtualUnlock (originalK2, sizeof (originalK2));
+	TCfree (write_buf);
+
+	return 0;
+
+fail:
+	err = GetLastError();
+
+	burn (temporaryKey, sizeof(temporaryKey));
+	burn (originalK2, sizeof(originalK2));
+	VirtualUnlock (temporaryKey, sizeof (temporaryKey));
+	VirtualUnlock (originalK2, sizeof (originalK2));
+	TCfree (write_buf);
+
+	SetLastError (err);
+	return (retVal ? retVal : ERR_OS_ERROR);
+}
+
+
+BOOL WriteSector (void *dev, char *sector,
+	     char *write_buf, int *write_buf_cnt,
+	     __int64 *nSecNo, PCRYPTO_INFO cryptoInfo)
+{
+	static __int32 updateTime = 0;
+
+	(*nSecNo)++;
+
+	memcpy (write_buf + *write_buf_cnt, sector, FormatSectorSize);
+	(*write_buf_cnt) += FormatSectorSize;
+
+	if (*write_buf_cnt == FormatWriteBufferSize && !FlushFormatWriteBuffer (dev, write_buf, write_buf_cnt, nSecNo, cryptoInfo))
+		return FALSE;
+
+	if (GetTickCount () - updateTime > 25)
+	{
+		if (UpdateProgressBar (*nSecNo * FormatSectorSize))
+			return FALSE;
+
+		updateTime = GetTickCount ();
+	}
+
+	return TRUE;
+
+}
+
+
+static volatile BOOL WriteThreadRunning;
+static volatile BOOL WriteThreadExitRequested;
+static HANDLE WriteThreadHandle;
+
+static byte *WriteThreadBuffer;
+static HANDLE WriteBufferEmptyEvent;
+static HANDLE WriteBufferFullEvent;
+
+static volatile HANDLE WriteRequestHandle;
+static volatile int WriteRequestSize;
+static volatile DWORD WriteRequestResult;
+
+
+static void __cdecl FormatWriteThreadProc (void *arg)
+{
+	DWORD bytesWritten;
+
+	SetThreadPriority (GetCurrentThread(), THREAD_PRIORITY_HIGHEST);
+
+	while (!WriteThreadExitRequested)
+	{
+		if (WaitForSingleObject (WriteBufferFullEvent, INFINITE) == WAIT_FAILED)
+		{
+			handleWin32Error (NULL);
+			break;
+		}
+
+		if (WriteThreadExitRequested)
+			break;
+
+		if (!WriteFile (WriteRequestHandle, WriteThreadBuffer, WriteRequestSize, &bytesWritten, NULL))
+			WriteRequestResult = GetLastError();
+		else
+			WriteRequestResult = ERROR_SUCCESS;
+
+		if (!SetEvent (WriteBufferEmptyEvent))
+		{
+			handleWin32Error (NULL);
+			break;
+		}
+	}
+
+	WriteThreadRunning = FALSE;
+	_endthread();
+}
+
+
+BOOL StartFormatWriteThread ()
+{
+	DWORD sysErr;
+
+	WriteBufferEmptyEvent = NULL;
+	WriteBufferFullEvent = NULL;
+	WriteThreadBuffer = NULL;
+
+	WriteBufferEmptyEvent = CreateEvent (NULL, FALSE, TRUE, NULL);
+	if (!WriteBufferEmptyEvent)
+		goto err;
+
+	WriteBufferFullEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
+	if (!WriteBufferFullEvent)
+		goto err;
+
+	WriteThreadBuffer = TCalloc (FormatWriteBufferSize);
+	if (!WriteThreadBuffer)
+	{
+		SetLastError (ERROR_OUTOFMEMORY);
+		goto err;
+	}
+
+	WriteThreadExitRequested = FALSE;
+	WriteRequestResult = ERROR_SUCCESS;
+
+	WriteThreadHandle = (HANDLE) _beginthread (FormatWriteThreadProc, 0, NULL);
+	if ((uintptr_t) WriteThreadHandle == -1L)
+		goto err;
+
+	WriteThreadRunning = TRUE;
+	return TRUE;
+
+err:
+	sysErr = GetLastError();
+
+	if (WriteBufferEmptyEvent)
+		CloseHandle (WriteBufferEmptyEvent);
+	if (WriteBufferFullEvent)
+		CloseHandle (WriteBufferFullEvent);
+	if (WriteThreadBuffer)
+		TCfree (WriteThreadBuffer);
+
+	SetLastError (sysErr);
+	return FALSE;
+}
+
+
+void StopFormatWriteThread ()
+{
+	if (WriteThreadRunning)
+	{
+		WaitForSingleObject (WriteBufferEmptyEvent, INFINITE);
+
+		WriteThreadExitRequested = TRUE;
+		SetEvent (WriteBufferFullEvent);
+
+		WaitForSingleObject (WriteThreadHandle, INFINITE);
+	}
+
+	CloseHandle (WriteBufferEmptyEvent);
+	CloseHandle (WriteBufferFullEvent);
+	TCfree (WriteThreadBuffer);
+}
+
+
+BOOL FlushFormatWriteBuffer (void *dev, char *write_buf, int *write_buf_cnt, __int64 *nSecNo, PCRYPTO_INFO cryptoInfo)
+{
+	UINT64_STRUCT unitNo;
+	DWORD bytesWritten;
+
+	if (*write_buf_cnt == 0)
+		return TRUE;
+
+	unitNo.Value = (*nSecNo * FormatSectorSize - *write_buf_cnt) / ENCRYPTION_DATA_UNIT_SIZE;
+
+	EncryptDataUnits (write_buf, &unitNo, *write_buf_cnt / ENCRYPTION_DATA_UNIT_SIZE, cryptoInfo);
+
+	if (WriteThreadRunning)
+	{
+		if (WaitForSingleObject (WriteBufferEmptyEvent, INFINITE) == WAIT_FAILED)
+			return FALSE;
+
+		if (WriteRequestResult != ERROR_SUCCESS)
+		{
+			SetEvent (WriteBufferEmptyEvent);
+			SetLastError (WriteRequestResult);
+			return FALSE;
+		}
+
+		memcpy (WriteThreadBuffer, write_buf, *write_buf_cnt);
+		WriteRequestHandle = dev;
+		WriteRequestSize = *write_buf_cnt;
+
+		if (!SetEvent (WriteBufferFullEvent))
+			return FALSE;
+	}
+	else
+	{
+		if (!WriteFile ((HANDLE) dev, write_buf, *write_buf_cnt, &bytesWritten, NULL))
+			return FALSE;
+	}
+
+	*write_buf_cnt = 0;
+	return TRUE;
+}
diff --git a/src/ExpandVolume/InitDataArea.h b/src/ExpandVolume/InitDataArea.h
new file mode 100644
index 0000000..7b648e0
--- /dev/null
+++ b/src/ExpandVolume/InitDataArea.h
@@ -0,0 +1,44 @@
+/*
+
+Most of the source code contained in this file is taken from the source code of
+TrueCrypt 7.0a, which is governed by the TrueCrypt License 3.0 that can be found
+in the file 'License.txt' in the folder 'TrueCrypt-License'.
+
+Modifications and additions to the original source code (contained in this file)
+and all other portions of this file are Copyright (c) 2009-2010 by Kih-Oskh or
+Copyright (c) 2012-2013 Josef Schneider <josef at netpage.dk>
+
+-------------------------------------------------------------------------------
+
+Original legal notice of the TrueCrypt source:
+
+ Legal Notice: Some portions of the source code contained in this file were
+ derived from the source code of Encryption for the Masses 2.02a, which is
+ Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License
+ Agreement for Encryption for the Masses'. Modifications and additions to
+ the original source code (contained in this file) and all other portions
+ of this file are Copyright (c) 2003-2010 TrueCrypt Developers Association
+ and are governed by the TrueCrypt License 3.0 the full text of which is
+ contained in the file License.txt included in TrueCrypt binary and source
+ code distribution packages. */
+
+#ifndef TC_HEADER_InitDataArea
+#define TC_HEADER_InitDataArea
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void SetFormatSectorSize (uint32 sector_size);
+int FormatNoFs (HWND hwndDlg, unsigned __int64 startSector, __int64 num_sectors, void *dev, PCRYPTO_INFO cryptoInfo, BOOL quickFormat);
+BOOL WriteSector ( void *dev , char *sector , char *write_buf , int *write_buf_cnt , __int64 *nSecNo , PCRYPTO_INFO cryptoInfo );
+BOOL FlushFormatWriteBuffer (void *dev, char *write_buf, int *write_buf_cnt, __int64 *nSecNo, PCRYPTO_INFO cryptoInfo);
+BOOL StartFormatWriteThread ();
+void StopFormatWriteThread ();
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // TC_HEADER_InitDataArea
\ No newline at end of file
diff --git a/src/ExpandVolume/Logo_288dpi.bmp b/src/ExpandVolume/Logo_288dpi.bmp
new file mode 100644
index 0000000..d42da51
Binary files /dev/null and b/src/ExpandVolume/Logo_288dpi.bmp differ
diff --git a/src/ExpandVolume/Logo_96dpi.bmp b/src/ExpandVolume/Logo_96dpi.bmp
new file mode 100644
index 0000000..485923d
Binary files /dev/null and b/src/ExpandVolume/Logo_96dpi.bmp differ
diff --git a/src/ExpandVolume/VeraCryptExpander.manifest b/src/ExpandVolume/VeraCryptExpander.manifest
new file mode 100644
index 0000000..36c64bc
--- /dev/null
+++ b/src/ExpandVolume/VeraCryptExpander.manifest
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3">
+    <v3:security>
+      <v3:requestedPrivileges>
+        <v3:requestedExecutionLevel level="requireAdministrator" />
+      </v3:requestedPrivileges>
+    </v3:security>
+  </v3:trustInfo>
+  <dependency>
+    <dependentAssembly>
+      <assemblyIdentity
+        type="win32"
+        name="Microsoft.Windows.Common-Controls"
+        version="6.0.0.0"
+        processorArchitecture="*"
+        publicKeyToken="6595b64144ccf1df"
+        language="*"
+      />
+    </dependentAssembly>
+  </dependency>
+</assembly>
diff --git a/src/ExpandVolume/WinMain.cpp b/src/ExpandVolume/WinMain.cpp
new file mode 100644
index 0000000..f107c98
--- /dev/null
+++ b/src/ExpandVolume/WinMain.cpp
@@ -0,0 +1,970 @@
+/*
+
+Most of the source code contained in this file is taken from the source code of
+TrueCrypt 7.0a, which is governed by the TrueCrypt License 3.0 that can be found
+in the file 'License.txt' in the folder 'TrueCrypt-License'.
+
+Modifications and additions to the original source code (contained in this file)
+and all other portions of this file are Copyright (c) 2009-2010 by Kih-Oskh or
+Copyright (c) 2012-2013 Josef Schneider <josef at netpage.dk>
+
+
+Source code in this file is derived from 'Mount\Mount.c'
+
+-------------------------------------------------------------------------------
+
+Original legal notice of the TrueCrypt source:
+
+	 Legal Notice: Some portions of the source code contained in this file were
+	 derived from the source code of Encryption for the Masses 2.02a, which is
+	 Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License
+	 Agreement for Encryption for the Masses'. Modifications and additions to
+	 the original source code (contained in this file) and all other portions
+	 of this file are Copyright (c) 2003-2009 TrueCrypt Developers Association
+	 and are governed by the TrueCrypt License 3.0 the full text of which is
+	 contained in the file License.txt included in TrueCrypt binary and source
+	 code distribution packages.
+
+*/
+
+#include "Tcdefs.h"
+
+#include <time.h>
+#include <math.h>
+#include <dbt.h>
+#include <fcntl.h>
+#include <io.h>
+#include <sys/stat.h>
+#include <windowsx.h>
+
+#include "Apidrvr.h"
+#include "BootEncryption.h"
+#include "Cmdline.h"
+#include "Crypto.h"
+#include "Dlgcode.h"
+#include "Combo.h"
+#include "Keyfiles.h"
+#include "Language.h"
+#include "../Mount/MainCom.h"
+#include "../Mount/Mount.h"
+#include "Pkcs5.h"
+#include "Random.h"
+#include "Registry.h"
+#include "Resource.h"
+#include "Password.h"
+#include "Xml.h"
+#include "../Boot/Windows/BootCommon.h"
+#include "../Common/Dictionary.h"
+#include "../Common/Common.h"
+#include "../Common/Resource.h"
+#include "../Common/SecurityToken.h"
+#include "../Platform/Finally.h"
+#include "../Platform/ForEach.h"
+#include <Strsafe.h>
+
+#include "ExpandVolume.h"
+
+using namespace VeraCrypt;
+
+const char szExpandVolumeInfo[] =
+":: VeraCrypt Expander ::\n\nExpand a VeraCrypt volume on the fly without reformatting\n\n\n\
+All kind of volumes (container files, disks and partitions) formatted with \
+NTFS are supported. The only condition is that there must be enough free \
+space on the host drive or host device of the VeraCrypt volume.\n\n\
+Do not use this software to expand an outer volume containing a hidden \
+volume, because this destroys the hidden volume!\n\
+";
+
+enum timer_ids
+{
+	TIMER_ID_MAIN = 0xff,
+	TIMER_ID_KEYB_LAYOUT_GUARD
+};
+
+enum hidden_os_read_only_notif_mode
+{
+	TC_HIDDEN_OS_READ_ONLY_NOTIF_MODE_NONE = 0,
+	TC_HIDDEN_OS_READ_ONLY_NOTIF_MODE_COMPACT,
+	TC_HIDDEN_OS_READ_ONLY_NOTIF_MODE_DISABLED
+};
+
+#define TIMER_INTERVAL_MAIN					500
+#define TIMER_INTERVAL_KEYB_LAYOUT_GUARD	10
+
+namespace VeraCryptExpander
+{
+
+BOOL bExplore = FALSE;				/* Display explorer window after mount */
+BOOL bBeep = FALSE;					/* Donot beep after mount */
+char szFileName[TC_MAX_PATH+1];		/* Volume to mount */
+char szDriveLetter[3];				/* Drive Letter to mount */
+char commandLineDrive = 0;
+BOOL bCacheInDriver = FALSE;		/* Cache any passwords we see */
+BOOL bCacheInDriverDefault = FALSE;
+BOOL bHistoryCmdLine = FALSE;		/* History control is always disabled */
+BOOL bCloseDismountedWindows=TRUE;	/* Close all open explorer windows of dismounted volume */
+BOOL bWipeCacheOnExit = FALSE;		/* Wipe password from chace on exit */
+BOOL bWipeCacheOnAutoDismount = TRUE;
+BOOL bEnableBkgTask = FALSE;
+BOOL bCloseBkgTaskWhenNoVolumes = FALSE;
+BOOL bDismountOnLogOff = TRUE;
+BOOL bDismountOnScreenSaver = TRUE;
+BOOL bDismountOnPowerSaving = FALSE;
+BOOL bForceAutoDismount = TRUE;
+BOOL bForceMount = FALSE;			/* Mount volume even if host file/device already in use */
+BOOL bForceUnmount = FALSE;			/* Unmount volume even if it cannot be locked */
+BOOL bWipe = FALSE;					/* Wipe driver passwords */
+BOOL bAuto = FALSE;					/* Do everything without user input */
+BOOL bAutoMountDevices = FALSE;		/* Auto-mount devices */
+BOOL bAutoMountFavorites = FALSE;
+BOOL bPlaySoundOnHotkeyMountDismount = TRUE;
+BOOL bDisplayMsgBoxOnHotkeyDismount = FALSE;
+BOOL bHibernationPreventionNotified = FALSE;	/* TRUE if the user has been notified that hibernation was prevented (system encryption) during the session. */
+BOOL bHiddenSysLeakProtNotifiedDuringSession = FALSE;	/* TRUE if the user has been notified during the session that unencrypted filesystems and non-hidden VeraCrypt volumes are mounted as read-only under hidden OS. */
+BOOL CloseSecurityTokenSessionsAfterMount = FALSE;
+
+BOOL MultipleMountOperationInProgress = FALSE;
+
+BOOL Quit = FALSE;					/* Exit after processing command line */
+BOOL ComServerMode = FALSE;
+BOOL UsePreferences = TRUE;
+
+int HiddenSysLeakProtectionNotificationStatus = TC_HIDDEN_OS_READ_ONLY_NOTIF_MODE_NONE;
+int MaxVolumeIdleTime = -120;
+int nCurrentShowType = 0;			/* current display mode, mount, unmount etc */
+int nSelectedDriveIndex = -1;		/* Item number of selected drive */
+
+int cmdUnmountDrive = 0;			/* Volume drive letter to unmount (-1 = all) */
+Password VolumePassword;			/* Password used for mounting volumes */
+Password CmdVolumePassword;			/* Password passed from command line */
+BOOL CmdVolumePasswordValid = FALSE;
+MountOptions mountOptions;
+MountOptions defaultMountOptions;
+KeyFile *FirstCmdKeyFile;
+
+HBITMAP hbmLogoBitmapRescaled = NULL;
+char OrigKeyboardLayout [8+1] = "00000409";
+BOOL bKeyboardLayoutChanged = FALSE;		/* TRUE if the keyboard layout was changed to the standard US keyboard layout (from any other layout). */
+BOOL bKeybLayoutAltKeyWarningShown = FALSE;	/* TRUE if the user has been informed that it is not possible to type characters by pressing keys while the right Alt key is held down. */
+
+static KeyFilesDlgParam				hidVolProtKeyFilesParam;
+VOLUME_NOTIFICATIONS_LIST	VolumeNotificationsList;
+
+static int bPrebootPasswordDlgMode = FALSE;
+
+static void localcleanup (void)
+{
+	// Wipe command line
+	char *c = GetCommandLineA ();
+	wchar_t *wc = GetCommandLineW ();
+	burn(c, strlen (c));
+	burn(wc, wcslen (wc) * sizeof (wchar_t));
+
+	/* Delete buffered bitmaps (if any) */
+	if (hbmLogoBitmapRescaled != NULL)
+	{
+		DeleteObject ((HGDIOBJ) hbmLogoBitmapRescaled);
+		hbmLogoBitmapRescaled = NULL;
+	}
+
+	/* These items should have already been cleared by the functions that used them, but we're going to
+	clear them for extra security. */
+	burn (&VolumePassword, sizeof (VolumePassword));
+	burn (&CmdVolumePassword, sizeof (CmdVolumePassword));
+	burn (&mountOptions, sizeof (mountOptions));
+	burn (&defaultMountOptions, sizeof (defaultMountOptions));
+	burn (&szFileName, sizeof(szFileName));
+
+	/* Cleanup common code resources */
+	cleanup ();
+
+	RandStop (TRUE);
+}
+
+
+void EndMainDlg (HWND hwndDlg)
+{
+	if (!bHistory)
+	{
+		SetWindowText (GetDlgItem (hwndDlg, IDC_VOLUME), "");
+	}
+
+	EndDialog (hwndDlg, 0);
+}
+
+BOOL CALLBACK MountOptionsDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	// dummy (referenced by PasswordDlgProc() )
+	return FALSE;
+}
+BOOL TCBootLoaderOnInactiveSysEncDrive (void)
+{
+	// dummy (referenced by Dlgcode.c)
+	return FALSE;
+}
+
+BOOL CheckSysEncMountWithoutPBA (const char *devicePath, BOOL quiet)
+{
+	// dummy (referenced by Dlgcode.c)
+	return FALSE;
+}
+
+static void InitMainDialog (HWND hwndDlg)
+{
+	/* Call the common dialog init code */
+	InitDialog (hwndDlg);
+	LocalizeDialog (hwndDlg, NULL);
+
+	SendMessage (GetDlgItem (hwndDlg, IDC_VOLUME), CB_LIMITTEXT, TC_MAX_PATH, 0);
+	SetWindowTextW (hwndDlg, lpszTitle);
+
+	SendMessage (GetDlgItem (hwndDlg, IDC_INFOEXPAND), WM_SETFONT, (WPARAM) hBoldFont, (LPARAM) TRUE);
+	SetWindowText (GetDlgItem (hwndDlg, IDC_INFOEXPAND), szExpandVolumeInfo);
+
+	// Resize the logo bitmap if the user has a non-default DPI
+	if (ScreenDPI != USER_DEFAULT_SCREEN_DPI
+		&& hbmLogoBitmapRescaled == NULL)	// If not re-called (e.g. after language pack change)
+	{
+		hbmLogoBitmapRescaled = RenderBitmap (MAKEINTRESOURCE (IDB_LOGO_288DPI),
+			GetDlgItem (hwndDlg, IDC_LOGO),
+			0, 0, 0, 0, FALSE, TRUE);
+	}
+
+	EnableDisableButtons (hwndDlg);
+}
+
+void EnableDisableButtons (HWND hwndDlg)
+{
+	HWND hOKButton = GetDlgItem (hwndDlg, IDOK);
+	WORD x;
+
+	x = LOWORD (GetSelectedLong (GetDlgItem (hwndDlg, IDC_DRIVELIST)));
+
+	EnableWindow (hOKButton, TRUE);
+
+}
+
+BOOL VolumeSelected (HWND hwndDlg)
+{
+	return (GetWindowTextLength (GetDlgItem (hwndDlg, IDC_VOLUME)) > 0);
+}
+
+
+void LoadSettings (HWND hwndDlg)
+{
+	WipeAlgorithmId savedWipeAlgorithm = TC_WIPE_NONE;
+
+	LoadSysEncSettings (hwndDlg);
+
+	if (LoadNonSysInPlaceEncSettings (&savedWipeAlgorithm) != 0)
+		bInPlaceEncNonSysPending = TRUE;
+
+	// If the config file has already been loaded during this session
+	if (ConfigBuffer != NULL)
+	{
+		free (ConfigBuffer);
+		ConfigBuffer = NULL;
+	}
+
+	// Options
+	bExplore =						ConfigReadInt ("OpenExplorerWindowAfterMount", FALSE);
+	bCloseDismountedWindows =		ConfigReadInt ("CloseExplorerWindowsOnDismount", TRUE);
+
+	bHistory =						ConfigReadInt ("SaveVolumeHistory", FALSE);
+
+	bCacheInDriverDefault = bCacheInDriver = ConfigReadInt ("CachePasswords", FALSE);
+	bWipeCacheOnExit =				ConfigReadInt ("WipePasswordCacheOnExit", FALSE);
+	bWipeCacheOnAutoDismount =		ConfigReadInt ("WipeCacheOnAutoDismount", TRUE);
+
+	bStartOnLogon =					ConfigReadInt ("StartOnLogon", FALSE);
+	bMountDevicesOnLogon =			ConfigReadInt ("MountDevicesOnLogon", FALSE);
+	bMountFavoritesOnLogon =		ConfigReadInt ("MountFavoritesOnLogon", FALSE);
+
+	bEnableBkgTask =				ConfigReadInt ("EnableBackgroundTask", TRUE);
+	bCloseBkgTaskWhenNoVolumes =	ConfigReadInt ("CloseBackgroundTaskOnNoVolumes", FALSE);
+
+	bDismountOnLogOff =				ConfigReadInt ("DismountOnLogOff", TRUE);
+	bDismountOnPowerSaving =		ConfigReadInt ("DismountOnPowerSaving", FALSE);
+	bDismountOnScreenSaver =		ConfigReadInt ("DismountOnScreenSaver", FALSE);
+	bForceAutoDismount =			ConfigReadInt ("ForceAutoDismount", TRUE);
+	MaxVolumeIdleTime =				ConfigReadInt ("MaxVolumeIdleTime", -60);
+
+	HiddenSectorDetectionStatus =	ConfigReadInt ("HiddenSectorDetectionStatus", 0);
+
+	defaultKeyFilesParam.EnableKeyFiles = ConfigReadInt ("UseKeyfiles", FALSE);
+
+	bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = ConfigReadInt ("PreserveTimestamps", TRUE);
+	defaultMountOptions.Removable =	ConfigReadInt ("MountVolumesRemovable", FALSE);
+	defaultMountOptions.ReadOnly =	ConfigReadInt ("MountVolumesReadOnly", FALSE);
+	defaultMountOptions.ProtectHiddenVolume = FALSE;
+	defaultMountOptions.PartitionInInactiveSysEncScope = FALSE;
+	defaultMountOptions.RecoveryMode = FALSE;
+	defaultMountOptions.UseBackupHeader =  FALSE;
+
+	mountOptions = defaultMountOptions;
+
+	CloseSecurityTokenSessionsAfterMount = ConfigReadInt ("CloseSecurityTokenSessionsAfterMount", 0);
+
+	ConfigReadString ("SecurityTokenLibrary", "", SecurityTokenLibraryPath, sizeof (SecurityTokenLibraryPath) - 1);
+	if (SecurityTokenLibraryPath[0])
+		InitSecurityTokenLibrary(hwndDlg);
+
+	/* we don't load the history */
+}
+
+
+BOOL SelectItem (HWND hTree, char nLetter)
+{
+	int i;
+	LVITEM item;
+
+	for (i = 0; i < ListView_GetItemCount(hTree); i++)
+	{
+		memset(&item, 0, sizeof(LVITEM));
+		item.mask = LVIF_PARAM;
+		item.iItem = i;
+
+		if (ListView_GetItem (hTree, &item) == FALSE)
+			return FALSE;
+		else
+		{
+			if (HIWORD (item.lParam) == nLetter)
+			{
+				memset(&item, 0, sizeof(LVITEM));
+				item.state = LVIS_FOCUSED|LVIS_SELECTED;
+				item.stateMask = LVIS_FOCUSED|LVIS_SELECTED;
+				item.mask = LVIF_STATE;
+				item.iItem = i;
+				SendMessage(hTree, LVM_SETITEMSTATE, i, (LPARAM) &item);
+				return TRUE;
+			}
+		}
+	}
+
+	return TRUE;
+}
+
+
+
+LPARAM
+GetSelectedLong (HWND hTree)
+{
+	int hItem = ListView_GetSelectionMark (hTree);
+	LVITEM item;
+
+	if (nSelectedDriveIndex >= 0)
+		hItem = nSelectedDriveIndex;
+
+	memset(&item, 0, sizeof(LVITEM));
+	item.mask = LVIF_PARAM;
+	item.iItem = hItem;
+
+	if (ListView_GetItem (hTree, &item) == FALSE)
+		return MAKELONG (0xffff, 0xffff);
+	else
+		return item.lParam;
+}
+
+LPARAM
+GetItemLong (HWND hTree, int itemNo)
+{
+	LVITEM item;
+
+	memset(&item, 0, sizeof(LVITEM));
+	item.mask = LVIF_PARAM;
+	item.iItem = itemNo;
+
+	if (ListView_GetItem (hTree, &item) == FALSE)
+		return MAKELONG (0xffff, 0xffff);
+	else
+		return item.lParam;
+}
+
+static char PasswordDlgVolume[MAX_PATH + 1];
+static BOOL PasswordDialogDisableMountOptions;
+static char *PasswordDialogTitleStringId;
+
+/* Except in response to the WM_INITDIALOG message, the dialog box procedure
+   should return nonzero if it processes the message, and zero if it does
+   not. - see DialogProc */
+BOOL CALLBACK ExtcvPasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	WORD lw = LOWORD (wParam);
+	static Password *szXPwd;
+	static int *pkcs5;
+	static BOOL* truecryptMode;
+
+	switch (msg)
+	{
+	case WM_INITDIALOG:
+		{
+			int i, nIndex;
+			szXPwd = ((PasswordDlgParam *) lParam) -> password;
+			pkcs5 = ((PasswordDlgParam *) lParam) -> pkcs5;
+			truecryptMode = ((PasswordDlgParam *) lParam) -> truecryptMode;
+			LocalizeDialog (hwndDlg, "IDD_PASSWORD_DLG");
+			DragAcceptFiles (hwndDlg, TRUE);
+
+			if (PasswordDialogTitleStringId)
+			{
+				SetWindowTextW (hwndDlg, GetString (PasswordDialogTitleStringId));
+			}
+			else if (strlen (PasswordDlgVolume) > 0)
+			{
+				wchar_t s[1024];
+				const int maxVisibleLen = 40;
+
+				if (strlen (PasswordDlgVolume) > maxVisibleLen)
+				{
+					string volStr = PasswordDlgVolume;
+					StringCbPrintfW (s, sizeof(s), GetString ("ENTER_PASSWORD_FOR"), ("..." + volStr.substr (volStr.size() - maxVisibleLen - 1)).c_str());
+				}
+				else
+					StringCbPrintfW (s, sizeof(s), GetString ("ENTER_PASSWORD_FOR"), PasswordDlgVolume);
+
+				SetWindowTextW (hwndDlg, s);
+			}
+
+			/* Populate the PRF algorithms list */
+			HWND hComboBox = GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID);
+			SendMessage (hComboBox, CB_RESETCONTENT, 0, 0);
+
+			nIndex = SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
+			SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) 0);
+
+			for (i = FIRST_PRF_ID; i <= LAST_PRF_ID; i++)
+			{
+				nIndex = SendMessage (hComboBox, CB_ADDSTRING, 0, (LPARAM) get_pkcs5_prf_name(i));
+				SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) i);
+			}
+
+			/* make autodetection the default */
+			SendMessage (hComboBox, CB_SETCURSEL, 0, 0);
+
+			SendMessage (GetDlgItem (hwndDlg, IDC_PASSWORD), EM_LIMITTEXT, MAX_PASSWORD, 0);
+			SendMessage (GetDlgItem (hwndDlg, IDC_CACHE), BM_SETCHECK, bCacheInDriver ? BST_CHECKED:BST_UNCHECKED, 0);
+
+			SetCheckBox (hwndDlg, IDC_KEYFILES_ENABLE, KeyFilesEnable);
+
+			mountOptions.PartitionInInactiveSysEncScope = bPrebootPasswordDlgMode;
+
+			if (bPrebootPasswordDlgMode)
+			{
+				SendMessage (hwndDlg, TC_APPMSG_PREBOOT_PASSWORD_MODE, 0, 0);
+			}
+
+			if (PasswordDialogDisableMountOptions)
+			{
+				EnableWindow (GetDlgItem (hwndDlg, IDC_CACHE), FALSE);
+				EnableWindow (GetDlgItem (hwndDlg, IDC_MOUNT_OPTIONS), FALSE);
+			}
+
+			/* No support for mounting TrueCrypt volumes */				
+			SetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE, FALSE);
+			EnableWindow (GetDlgItem (hwndDlg, IDC_TRUECRYPT_MODE), FALSE);
+
+			if (!SetForegroundWindow (hwndDlg) && (FavoriteMountOnArrivalInProgress))
+			{
+				SetWindowPos (hwndDlg, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
+
+				FLASHWINFO flash;
+				flash.cbSize = sizeof (flash);
+				flash.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG;
+				flash.dwTimeout = 0;
+				flash.hwnd = hwndDlg;
+				flash.uCount = 0;
+
+				FlashWindowEx (&flash);
+
+				SetWindowPos (hwndDlg, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
+			}
+		}
+		return 0;
+
+	case TC_APPMSG_PREBOOT_PASSWORD_MODE:
+		{
+			/* No support for mounting TrueCrypt system partition */				
+			SetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE, FALSE);
+			EnableWindow (GetDlgItem (hwndDlg, IDC_TRUECRYPT_MODE), FALSE);
+
+			/* Repopulate the PRF algorithms list with algorithms that support system encryption */
+			HWND hComboBox = GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID);
+			SendMessage (hComboBox, CB_RESETCONTENT, 0, 0);
+
+			int i, nIndex = SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
+			SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) 0);
+
+			for (i = FIRST_PRF_ID; i <= LAST_PRF_ID; i++)
+			{
+				if (HashForSystemEncryption(i))
+				{
+					nIndex = SendMessage (hComboBox, CB_ADDSTRING, 0, (LPARAM) get_pkcs5_prf_name(i));
+					SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) i);
+				}
+			}
+
+			/* make autodetection the default */
+			SendMessage (hComboBox, CB_SETCURSEL, 0, 0);
+
+			ToBootPwdField (hwndDlg, IDC_PASSWORD);
+
+			// Attempt to wipe the password stored in the input field buffer
+			char tmp[MAX_PASSWORD+1];
+			memset (tmp, 'X', MAX_PASSWORD);
+			tmp [MAX_PASSWORD] = 0;
+			SetWindowText (GetDlgItem (hwndDlg, IDC_PASSWORD), tmp);
+			SetWindowText (GetDlgItem (hwndDlg, IDC_PASSWORD), "");
+
+			StringCbPrintfA (OrigKeyboardLayout, sizeof(OrigKeyboardLayout),"%08X", (DWORD) GetKeyboardLayout (NULL) & 0xFFFF);
+
+			DWORD keybLayout = (DWORD) LoadKeyboardLayout ("00000409", KLF_ACTIVATE);
+
+			if (keybLayout != 0x00000409 && keybLayout != 0x04090409)
+			{
+				Error ("CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION", hwndDlg);
+				EndDialog (hwndDlg, IDCANCEL);
+				return 1;
+			}
+
+			if (SetTimer (hwndDlg, TIMER_ID_KEYB_LAYOUT_GUARD, TIMER_INTERVAL_KEYB_LAYOUT_GUARD, NULL) == 0)
+			{
+				Error ("CANNOT_SET_TIMER", hwndDlg);
+				EndDialog (hwndDlg, IDCANCEL);
+				return 1;
+			}
+
+			SetCheckBox (hwndDlg, IDC_SHOW_PASSWORD, FALSE);
+			EnableWindow (GetDlgItem (hwndDlg, IDC_SHOW_PASSWORD), FALSE);
+
+			SendMessage (GetDlgItem (hwndDlg, IDC_PASSWORD), EM_SETPASSWORDCHAR, '*', 0);
+			InvalidateRect (GetDlgItem (hwndDlg, IDC_PASSWORD), NULL, TRUE);
+
+			bPrebootPasswordDlgMode = TRUE;
+		}
+		return 1;
+
+	case WM_TIMER:
+		switch (wParam)
+		{
+		case TIMER_ID_KEYB_LAYOUT_GUARD:
+			if (bPrebootPasswordDlgMode)
+			{
+				DWORD keybLayout = (DWORD) GetKeyboardLayout (NULL);
+
+				if (keybLayout != 0x00000409 && keybLayout != 0x04090409)
+				{
+					// Keyboard layout is not standard US
+
+					// Attempt to wipe the password stored in the input field buffer
+					char tmp[MAX_PASSWORD+1];
+					memset (tmp, 'X', MAX_PASSWORD);
+					tmp [MAX_PASSWORD] = 0;
+					SetWindowText (GetDlgItem (hwndDlg, IDC_PASSWORD), tmp);
+					SetWindowText (GetDlgItem (hwndDlg, IDC_PASSWORD), "");
+
+					keybLayout = (DWORD) LoadKeyboardLayout ("00000409", KLF_ACTIVATE);
+
+					if (keybLayout != 0x00000409 && keybLayout != 0x04090409)
+					{
+						KillTimer (hwndDlg, TIMER_ID_KEYB_LAYOUT_GUARD);
+						Error ("CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION", hwndDlg);
+						EndDialog (hwndDlg, IDCANCEL);
+						return 1;
+					}
+
+					wchar_t szTmp [4096];
+					StringCbCopyW (szTmp, sizeof(szTmp), GetString ("KEYB_LAYOUT_CHANGE_PREVENTED"));
+					StringCbCatW (szTmp, sizeof(szTmp), L"\n\n");
+					StringCbCatW (szTmp, sizeof(szTmp), GetString ("KEYB_LAYOUT_SYS_ENC_EXPLANATION"));
+					MessageBoxW (MainDlg, szTmp, lpszTitle, MB_ICONWARNING | MB_SETFOREGROUND | MB_TOPMOST);
+				}
+			}
+			return 1;
+		}
+		return 0;
+
+	case WM_COMMAND:
+
+		if (lw == IDC_MOUNT_OPTIONS)
+		{
+			DialogBoxParamW (hInst, 
+				MAKEINTRESOURCEW (IDD_MOUNT_OPTIONS), hwndDlg,
+				(DLGPROC) MountOptionsDlgProc, (LPARAM) &mountOptions);
+
+			if (!bPrebootPasswordDlgMode && mountOptions.PartitionInInactiveSysEncScope)
+				SendMessage (hwndDlg, TC_APPMSG_PREBOOT_PASSWORD_MODE, 0, 0);
+
+			return 1;
+		}
+
+		if (lw == IDC_SHOW_PASSWORD)
+		{
+			SendMessage (GetDlgItem (hwndDlg, IDC_PASSWORD),
+						EM_SETPASSWORDCHAR,
+						GetCheckBox (hwndDlg, IDC_SHOW_PASSWORD) ? 0 : '*',
+						0);
+			InvalidateRect (GetDlgItem (hwndDlg, IDC_PASSWORD), NULL, TRUE);
+			return 1;
+		}
+
+		if (lw == IDC_KEY_FILES)
+		{
+			KeyFilesDlgParam param;
+			param.EnableKeyFiles = KeyFilesEnable;
+			param.FirstKeyFile = FirstKeyFile;
+
+			if (IDOK == DialogBoxParamW (hInst,
+				MAKEINTRESOURCEW (IDD_KEYFILES), hwndDlg,
+				(DLGPROC) KeyFilesDlgProc, (LPARAM) &param))
+			{
+				KeyFilesEnable = param.EnableKeyFiles;
+				FirstKeyFile = param.FirstKeyFile;
+
+				SetCheckBox (hwndDlg, IDC_KEYFILES_ENABLE, KeyFilesEnable);
+			}
+
+			return 1;
+		}
+
+		if (lw == IDC_KEYFILES_ENABLE)
+		{
+			KeyFilesEnable = GetCheckBox (hwndDlg, IDC_KEYFILES_ENABLE);
+
+			return 1;
+		}
+
+		if (lw == IDCANCEL || lw == IDOK)
+		{
+			char tmp[MAX_PASSWORD+1];
+			
+			if (lw == IDOK)
+			{
+				if (mountOptions.ProtectHiddenVolume && hidVolProtKeyFilesParam.EnableKeyFiles)
+					KeyFilesApply (hwndDlg, &mountOptions.ProtectedHidVolPassword, hidVolProtKeyFilesParam.FirstKeyFile);
+
+				GetWindowText (GetDlgItem (hwndDlg, IDC_PASSWORD), (LPSTR) szXPwd->Text, MAX_PASSWORD + 1);
+				szXPwd->Length = strlen ((char *) szXPwd->Text);
+
+				bCacheInDriver = IsButtonChecked (GetDlgItem (hwndDlg, IDC_CACHE));	 
+				*pkcs5 = (int) SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETITEMDATA, SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETCURSEL, 0, 0), 0);
+				*truecryptMode = GetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE);
+				/* SHA-256 is not supported by TrueCrypt */
+				if (	(*truecryptMode) 
+					&& ((*pkcs5 == SHA256) || (mountOptions.ProtectHiddenVolume && mountOptions.ProtectedHidVolPkcs5Prf == SHA256))
+					)
+				{
+					Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
+					return 1;
+				}
+			}
+
+			// Attempt to wipe password stored in the input field buffer
+			memset (tmp, 'X', MAX_PASSWORD);
+			tmp[MAX_PASSWORD] = 0;
+			SetWindowText (GetDlgItem (hwndDlg, IDC_PASSWORD), tmp);	
+			SetWindowText (GetDlgItem (hwndDlg, IDC_PASSWORD_PROT_HIDVOL), tmp);	
+
+			if (hidVolProtKeyFilesParam.FirstKeyFile != NULL)
+			{
+				KeyFileRemoveAll (&hidVolProtKeyFilesParam.FirstKeyFile);
+				hidVolProtKeyFilesParam.EnableKeyFiles = FALSE;
+			}
+
+			if (bPrebootPasswordDlgMode)
+			{
+				KillTimer (hwndDlg, TIMER_ID_KEYB_LAYOUT_GUARD);
+
+				// Restore the original keyboard layout
+				if (LoadKeyboardLayout (OrigKeyboardLayout, KLF_ACTIVATE | KLF_SUBSTITUTE_OK) == NULL) 
+					Warning ("CANNOT_RESTORE_KEYBOARD_LAYOUT", hwndDlg);
+			}
+
+			EndDialog (hwndDlg, lw);
+			return 1;
+		}
+		return 0;
+
+	case WM_CONTEXTMENU:
+		{
+			RECT buttonRect;
+			GetWindowRect (GetDlgItem (hwndDlg, IDC_KEY_FILES), &buttonRect);
+
+			if (LOWORD (lParam) >= buttonRect.left && LOWORD (lParam) <= buttonRect.right
+				&& HIWORD (lParam) >= buttonRect.top && HIWORD (lParam) <= buttonRect.bottom)
+			{
+				// The "Keyfiles" button has been right-clicked
+
+				KeyFilesDlgParam param;
+				param.EnableKeyFiles = KeyFilesEnable;
+				param.FirstKeyFile = FirstKeyFile;
+
+				POINT popupPos;
+				popupPos.x = buttonRect.left + 2;
+				popupPos.y = buttonRect.top + 2;
+
+				if (KeyfilesPopupMenu (hwndDlg, popupPos, &param))
+				{
+					KeyFilesEnable = param.EnableKeyFiles;
+					FirstKeyFile = param.FirstKeyFile;
+					SetCheckBox (hwndDlg, IDC_KEYFILES_ENABLE, KeyFilesEnable);
+				}
+			}
+		}
+		break; 
+
+	case WM_DROPFILES:
+		{
+			HDROP hdrop = (HDROP) wParam;
+			int i = 0, count = DragQueryFile (hdrop, 0xFFFFFFFF, NULL, 0);
+
+			while (count-- > 0)
+			{
+				KeyFile *kf = (KeyFile *) malloc (sizeof (KeyFile));
+				if (kf)
+				{
+					DragQueryFile (hdrop, i++, kf->FileName, sizeof (kf->FileName));
+					FirstKeyFile = KeyFileAdd (FirstKeyFile, kf);
+					KeyFilesEnable = TRUE;
+				}
+			}
+
+			SetCheckBox (hwndDlg, IDC_KEYFILES_ENABLE, KeyFilesEnable);
+			DragFinish (hdrop);
+		}
+		return 1;
+	}
+
+	return 0;
+}
+
+void SaveSettings (HWND hwndDlg)
+{
+	// dummy
+}
+
+int BackupVolumeHeader (HWND hwndDlg, BOOL bRequireConfirmation, char *lpszVolume)
+{
+	// dummy
+	return 0;
+}
+
+int RestoreVolumeHeader (HWND hwndDlg, char *lpszVolume)
+{
+	// dummy
+	return 0;
+}
+
+int ExtcvAskVolumePassword (HWND hwndDlg, Password *password, int *pkcs5, BOOL* truecryptMode, char *titleStringId, BOOL enableMountOptions)
+{
+	int result;
+	PasswordDlgParam dlgParam;
+
+	PasswordDialogTitleStringId = titleStringId;
+	PasswordDialogDisableMountOptions = !enableMountOptions;
+
+	dlgParam.password = password;
+	dlgParam.pkcs5 = pkcs5;
+	dlgParam.truecryptMode = truecryptMode;
+
+	result = DialogBoxParamW (hInst, 
+		MAKEINTRESOURCEW (IDD_PASSWORD_DLG), hwndDlg,
+		(DLGPROC) ExtcvPasswordDlgProc, (LPARAM) &dlgParam);
+
+	if (result != IDOK)
+	{
+		password->Length = 0;
+		*pkcs5 = 0;
+		*truecryptMode = FALSE;
+		burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
+		burn (&mountOptions.ProtectedHidVolPkcs5Prf, sizeof (mountOptions.ProtectedHidVolPkcs5Prf));
+	}
+
+	return result == IDOK;
+}
+
+// GUI actions
+
+static BOOL SelectContainer (HWND hwndDlg)
+{
+	if (BrowseFiles (hwndDlg, "OPEN_VOL_TITLE", szFileName, bHistory, FALSE, NULL) == FALSE)
+		return FALSE;
+
+	AddComboItem (GetDlgItem (hwndDlg, IDC_VOLUME), szFileName, bHistory);
+	VeraCryptExpander::EnableDisableButtons (hwndDlg);
+	SetFocus (GetDlgItem (hwndDlg, IDC_DRIVELIST));
+	return TRUE;
+}
+
+static BOOL SelectPartition (HWND hwndDlg)
+{
+	int nResult = DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_RAWDEVICES_DLG), hwndDlg,
+		(DLGPROC) RawDevicesDlgProc, (LPARAM) & szFileName[0]);
+	if (nResult == IDOK)
+	{
+		AddComboItem (GetDlgItem (hwndDlg, IDC_VOLUME), szFileName, bHistory);
+		VeraCryptExpander::EnableDisableButtons (hwndDlg);
+		SetFocus (GetDlgItem (hwndDlg, IDC_DRIVELIST));
+		return TRUE;
+	}
+
+	return FALSE;
+}
+
+
+/* Except in response to the WM_INITDIALOG and WM_ENDSESSION messages, the dialog box procedure
+   should return nonzero if it processes a message, and zero if it does not. */
+BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+	static UINT taskBarCreatedMsg;
+	WORD lw = LOWORD (wParam);
+
+	switch (uMsg)
+	{
+
+	case WM_INITDIALOG:
+		{
+			int exitCode = 0;
+
+			MainDlg = hwndDlg;
+
+			// Set critical default options in case UsePreferences is false
+			bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = TRUE;
+
+			if (UsePreferences)
+			{
+				// General preferences
+				VeraCryptExpander::LoadSettings (hwndDlg);
+
+				// Keyfiles
+				LoadDefaultKeyFilesParam ();
+				RestoreDefaultKeyFilesParam ();
+			}
+
+			InitMainDialog (hwndDlg);
+
+			// Quit
+			if (Quit)
+			{
+				exit (exitCode);
+			}
+
+			Silent = FALSE;
+		}
+		return 0;
+
+	case WM_SYSCOMMAND:
+		if (lw == IDC_ABOUT)
+		{
+			DialogBoxW (hInst, MAKEINTRESOURCEW (IDD_ABOUT_DLG), hwndDlg, (DLGPROC) AboutDlgProc);
+			return 1;
+		}
+		return 0;
+
+	case WM_ENDSESSION:
+		VeraCryptExpander::EndMainDlg (hwndDlg);
+		localcleanup ();
+		return 0;
+
+	case WM_COMMAND:
+
+		if (lw == IDCANCEL || lw == IDC_EXIT)
+		{
+			VeraCryptExpander::EndMainDlg (hwndDlg);
+			return 1;
+		}
+
+		if ( lw == IDOK )
+		{
+			if (!VeraCryptExpander::VolumeSelected(hwndDlg))
+			{
+				Warning ("NO_VOLUME_SELECTED", hwndDlg);
+			}
+			else
+			{
+				char fileName[MAX_PATH];
+				GetWindowText (GetDlgItem (hwndDlg, IDC_VOLUME), fileName, sizeof (fileName));
+				ExpandVolumeWizard(hwndDlg, (char*)fileName);
+			}
+			return 1;
+		}
+
+		if (lw == IDM_ABOUT )
+		{
+			DialogBoxW (hInst, MAKEINTRESOURCEW (IDD_ABOUT_DLG), hwndDlg, (DLGPROC) AboutDlgProc);
+			return 1;
+		}
+
+		if (lw == IDM_HOMEPAGE )
+		{
+			ArrowWaitCursor ();
+			ShellExecute (NULL, "open", "https://veracrypt.codeplex.com", NULL, NULL, SW_SHOWNORMAL);
+			Sleep (200);
+			NormalCursor ();
+
+			return 1;
+		}
+
+		if (lw == IDC_SELECT_FILE)
+		{
+			SelectContainer (hwndDlg);
+			return 1;
+		}
+
+		if (lw == IDC_SELECT_DEVICE)
+		{
+			SelectPartition (hwndDlg);
+			return 1;
+		}
+
+		return 0;
+
+	case WM_CLOSE:
+		VeraCryptExpander::EndMainDlg (hwndDlg);
+		return 1;
+
+	default:
+		;
+	}
+
+	return 0;
+}
+
+}
+
+
+int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *lpszCommandLine, int nCmdShow)
+{
+	int status;
+	atexit (VeraCryptExpander::localcleanup);
+	SetProcessShutdownParameters (0x100, 0);
+
+	VirtualLock (&VeraCryptExpander::VolumePassword, sizeof (VeraCryptExpander::VolumePassword));
+	VirtualLock (&VeraCryptExpander::CmdVolumePassword, sizeof (VeraCryptExpander::CmdVolumePassword));
+	VirtualLock (&VeraCryptExpander::mountOptions, sizeof (VeraCryptExpander::mountOptions));
+	VirtualLock (&VeraCryptExpander::defaultMountOptions, sizeof (VeraCryptExpander::defaultMountOptions));
+	VirtualLock (&VeraCryptExpander::szFileName, sizeof(VeraCryptExpander::szFileName));
+
+	InitCommonControls ();
+	InitApp (hInstance, lpszCommandLine);
+
+	/* application title */
+	lpszTitle = L"VeraCrypt Expander";
+
+	status = DriverAttach ();
+	if (status != 0)
+	{
+		if (status == ERR_OS_ERROR)
+			handleWin32Error (NULL);
+		else
+			handleError (NULL, status);
+
+		AbortProcess ("NODRIVER");
+	}
+
+	/* Create the main dialog box */
+	DialogBoxParamW (hInstance, MAKEINTRESOURCEW (IDD_MOUNT_DLG), NULL, (DLGPROC) VeraCryptExpander::MainDialogProc,
+			(LPARAM) lpszCommandLine);
+
+	/* Terminate */
+	return 0;
+}
diff --git a/src/ExpandVolume/resource.h b/src/ExpandVolume/resource.h
new file mode 100644
index 0000000..9e2a2d8
--- /dev/null
+++ b/src/ExpandVolume/resource.h
@@ -0,0 +1,143 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by ExpandVolume.rc
+//
+#define IDD_MOUNT_DLG                   101
+#define IDD_PASSWORD_DLG                104
+#define IDR_MENU                        106
+#define IDD_EXPAND_PROGRESS_DLG         106
+#define IDR_MOUNT_RSRC_HEADER           109
+#define IDS_UACSTRING                   110
+#define IDB_LOGO_288DPI                 111
+#define IDB_LOGO_96DPI                  112
+#define IDD_SIZE_DIALOG                 117
+#define IDC_BOX_HELP                    1003
+#define IDC_CACHE                       1005
+#define IDC_NO_HISTORY                  1006
+#define IDC_DRIVELIST                   1007
+#define IDC_SPACE_LEFT                  1009
+#define IDC_KB                          1011
+#define IDC_MB                          1013
+#define IDC_PROGRESS_BAR                1014
+#define IDC_GB                          1015
+#define IDC_EXPAND_VOLUME_OLDSIZE       1017
+#define IDC_EXPAND_VOLUME_NEWSIZE       1019
+#define IDC_EXPAND_VOLUME_NAME          1020
+#define IDC_EXPAND_VOLUME_INITSPACE     1021
+#define IDC_EXPAND_FILE_SYSTEM          1022
+#define IDC_RANDOM_BYTES                1023
+#define IDC_BYTESWRITTEN                1024
+#define IDC_WRITESPEED                  1025
+#define IDC_MOUNT_OPTIONS               1026
+#define IDC_TIMEREMAIN                  1027
+#define IDC_KEY_FILES                   1030
+#define IDC_VOLUME                      1033
+#define IDC_PASSWORD                    1034
+#define IDC_SELECT_DEVICE               1036
+#define IDC_CREATE_VOLUME               1037
+#define IDC_VOLUME_TOOLS                1038
+#define IDC_SIZEBOX                     1038
+#define IDC_WIPE_CACHE                  1039
+#define IDC_MOUNTALL                    1040
+#define IDC_SELECT_FILE                 1042
+#define IDC_VOLUME_PROPERTIES           1044
+#define IDT_RANDOM_POOL                 1047
+#define IDT_VOL_NAME                    1047
+#define IDT_HEADER_KEY                  1048
+#define IDT_CURRENT_SIZE                1048
+#define IDT_VOLUME                      1049
+#define IDT_MASTER_KEY                  1049
+#define IDT_NEW_SIZE                    1049
+#define IDT_PASSWORD                    1050
+#define IDT_DONE                        1050
+#define IDT_SPEED                       1051
+#define IDT_LEFT                        1052
+#define IDT_INIT_SPACE                  1053
+#define IDT_FILE_SYS                    1054
+#define IDT_INIT_SPACE2                 1055
+#define IDT_RANDOM_POOL2                1055
+#define IDC_EXIT                        1060
+#define IDC_UNMOUNTALL                  1063
+#define IDC_SHOW_PASSWORD               1094
+#define IDC_LOGO                        1095
+#define IDC_SIZEDLG_TITLE               1111
+#define IDC_INIT_NEWSPACE               1112
+#define IDC_INFOEXPAND                  1113
+#define IDC_EDIT1                       1114
+#define IDC_BOX_STATUS                  1114
+#define IDC_TRUECRYPT_MODE              1140
+#define IDM_HELP                        40001
+#define IDM_ABOUT                       40002
+#define IDM_UNMOUNT_VOLUME              40003
+#define IDM_CLEAR_HISTORY               40004
+#define IDM_FORUMS                      40005
+#define IDM_BENCHMARK                   40006
+#define IDM_TRAVELER                    40007
+#define IDM_MOUNT_VOLUME_OPTIONS        40008
+#define IDM_FAQ                         40009
+#define IDM_REFRESH_DRIVE_LETTERS       40010
+#define IDM_DEFAULT_KEYFILES            40011
+#define IDM_WEBSITE                     40012
+#define IDM_MOUNTALL                    40013
+#define IDM_UNMOUNTALL                  40014
+#define IDM_MOUNT_VOLUME                40015
+#define IDM_CHANGE_PASSWORD             40016
+#define IDM_VOLUME_WIZARD               40017
+#define IDM_CREATE_VOLUME               40018
+#define IDM_WIPE_CACHE                  40019
+#define IDM_PREFERENCES                 40020
+#define IDM_LICENSE                     40021
+#define IDM_SELECT_FILE                 40022
+#define IDM_SELECT_DEVICE               40023
+#define IDM_VOLUME_PROPERTIES           40024
+#define IDM_LANGUAGE                    40025
+#define IDM_MOUNT_FAVORITE_VOLUMES      40026
+#define IDM_SAVE_FAVORITE_VOLUMES       40027
+#define IDM_BACKUP_VOL_HEADER           40028
+#define IDM_RESTORE_VOL_HEADER          40029
+#define IDM_HOTKEY_SETTINGS             40030
+#define IDM_TC_DOWNLOADS                40031
+#define IDM_NEWS                        40032
+#define IDM_BUGREPORT                   40033
+#define IDM_CONTACT                     40034
+#define IDM_VERSION_HISTORY             40035
+#define IDM_HOMEPAGE                    40036
+#define IDM_TEST_VECTORS                40037
+#define IDM_ADD_REMOVE_VOL_KEYFILES     40038
+#define IDM_REMOVE_ALL_KEYFILES_FROM_VOL 40039
+#define IDM_GENERATE_KEYFILE            40040
+#define IDM_CHANGE_HEADER_KEY_DERIV_ALGO 40041
+#define IDM_KEYFILE_GENERATOR           40042
+#define IDM_SET_DEFAULT_KEYFILES        40043
+#define IDM_ONLINE_TUTORIAL             40044
+#define IDM_ONLINE_HELP                 40045
+#define IDM_DONATIONS                   40046
+#define IDM_CHANGE_SYS_HEADER_KEY_DERIV_ALGO 40047
+#define IDM_CHANGE_SYS_PASSWORD         40048
+#define IDM_CREATE_RESCUE_DISK          40049
+#define IDM_PERMANENTLY_DECRYPT_SYS     40050
+#define IDM_VERIFY_RESCUE_DISK          40051
+#define IDM_SYSTEM_ENCRYPTION_STATUS    40052
+#define IDM_ENCRYPT_SYSTEM_DEVICE       40053
+#define IDM_SYSENC_RESUME               40054
+#define IDM_MOUNT_SYSENC_PART_WITHOUT_PBA 40055
+#define IDM_CREATE_HIDDEN_OS            40056
+#define IDM_TOKEN_PREFERENCES           40057
+#define IDM_CLOSE_ALL_TOKEN_SESSIONS    40058
+#define IDM_SYS_ENC_SETTINGS            40059
+#define IDM_SYSENC_SETTINGS             40060
+#define IDM_RESUME_INTERRUPTED_PROC     40061
+#define IDM_MANAGE_TOKEN_KEYFILES       40062
+#define ID_HOMEPAGE                     40063
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC                     1
+#define _APS_NEXT_RESOURCE_VALUE        120
+#define _APS_NEXT_COMMAND_VALUE         40064
+#define _APS_NEXT_CONTROL_VALUE         1116
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
diff --git a/src/Format/Format.rc b/src/Format/Format.rc
index 8e98de7..256744c 100644
--- a/src/Format/Format.rc
+++ b/src/Format/Format.rc
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,6,2
- PRODUCTVERSION 1,0,6,2
+ FILEVERSION 1,0,6,3
+ PRODUCTVERSION 1,0,6,3
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -46,11 +46,11 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "IDRIX"
             VALUE "FileDescription", "VeraCrypt Format"
-            VALUE "FileVersion", "1.0f-1"
+            VALUE "FileVersion", "1.0f-2"
             VALUE "LegalTrademarks", "VeraCrypt"
             VALUE "OriginalFilename", "VeraCrypt Format.exe"
             VALUE "ProductName", "VeraCrypt"
-            VALUE "ProductVersion", "1.0f-1"
+            VALUE "ProductVersion", "1.0f-2"
         END
     END
     BLOCK "VarFileInfo"
diff --git a/src/Format/InPlace.c b/src/Format/InPlace.c
index 4c5491e..3998c2a 100644
--- a/src/Format/InPlace.c
+++ b/src/Format/InPlace.c
@@ -21,6 +21,7 @@ IMPORTANT: Due to this issue, functions in this file must not directly interact
 #include <stdlib.h>
 #include <string.h>
 #include <string>
+#include <intsafe.h>
 
 #include "Tcdefs.h"
 #include "Platform/Finally.h"
@@ -71,6 +72,17 @@ static __int64 NewFileSysSizeAfterShrink (HANDLE dev, const char *devicePath, in
 		return -1;
 	}
 
+	if (	(ntfsVolData.NumberSectors.QuadPart <= 0)
+		||	(ntfsVolData.NumberSectors.QuadPart > (INT64_MAX / (__int64) ntfsVolData.BytesPerSector)) // overflow test
+		)
+	{
+		SetLastError (ERROR_INTERNAL_ERROR);
+		if (!silent)
+			handleWin32Error (MainDlg);
+
+		return -1;
+	}	
+
 	fileSysSize = ntfsVolData.NumberSectors.QuadPart * ntfsVolData.BytesPerSector;
 
 	desiredNbrSectors = (fileSysSize - TC_TOTAL_VOLUME_HEADERS_SIZE) / ntfsVolData.BytesPerSector;
diff --git a/src/Format/Tcformat.c b/src/Format/Tcformat.c
index d55cc06..b32ce0c 100644
--- a/src/Format/Tcformat.c
+++ b/src/Format/Tcformat.c
@@ -266,14 +266,18 @@ static BOOL ElevateWholeWizardProcess (string arguments)
 
 	GetModuleFileName (NULL, modPath, sizeof (modPath));
 
-	if ((int)ShellExecute (MainDlg, "runas", modPath, (string("/q UAC ") + arguments).c_str(), NULL, SW_SHOWNORMAL) > 32)
-	{				
-		exit (0);
-	}
-	else
+	while (true)
 	{
-		Error ("UAC_INIT_ERROR", MainDlg);
-		return FALSE;
+		if ((int)ShellExecute (MainDlg, "runas", modPath, (string("/q UAC ") + arguments).c_str(), NULL, SW_SHOWNORMAL) > 32)
+		{				
+			exit (0);
+		}
+		else
+		{
+			if (IDRETRY == ErrorRetryCancel ("UAC_INIT_ERROR", MainDlg))
+				continue;
+			return FALSE;
+		}
 	}
 }
 
@@ -2533,13 +2537,12 @@ static void __cdecl volTransformThreadFunction (void *hwndDlgArg)
 			if (!bInPlaceEncNonSys)
 				SetTimer (hwndDlg, TIMER_ID_RANDVIEW, TIMER_INTERVAL_RANDVIEW, NULL);
 
-			if (volParams != NULL)
-			{
-				burn ((LPVOID) volParams, sizeof(FORMAT_VOL_PARAMETERS));
-				VirtualUnlock ((LPVOID) volParams, sizeof(FORMAT_VOL_PARAMETERS));
-				free ((LPVOID) volParams);
-				volParams = NULL;
-			}
+
+			// volParams is ensured to be non NULL at this stage
+			burn ((LPVOID) volParams, sizeof(FORMAT_VOL_PARAMETERS));
+			VirtualUnlock ((LPVOID) volParams, sizeof(FORMAT_VOL_PARAMETERS));
+			free ((LPVOID) volParams);
+			volParams = NULL;
 
 			bVolTransformThreadRunning = FALSE;
 			bVolTransformThreadCancel = FALSE;
@@ -6689,9 +6692,8 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
 						Error ("UNSUPPORTED_CHARS_IN_PWD", hwndDlg);
 						return 1;
 					}
-					// Check password length (do not check if it's for an outer volume).
-					else if (!bHiddenVolHost
-						&& !CheckPasswordLength (hwndDlg, GetDlgItem (hCurPage, IDC_PASSWORD)))
+					// Check password length (check also done for outer volume which is not the case in TrueCrypt).
+					else if (!CheckPasswordLength (hwndDlg, GetDlgItem (hCurPage, IDC_PASSWORD)))
 					{
 						return 1;
 					}
@@ -8998,7 +9000,15 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *lpszComm
 	nPbar = IDC_PROGRESS_BAR;
 
 	if (Randinit ())
-		AbortProcess ("INIT_RAND");
+	{
+		DWORD dwLastError = GetLastError ();
+		wchar_t szTmp[4096];		
+		if (CryptoAPILastError == ERROR_SUCCESS)
+			StringCbPrintfW (szTmp, sizeof(szTmp), GetString ("INIT_RAND"), SRC_POS, dwLastError);
+		else
+			StringCbPrintfW (szTmp, sizeof(szTmp), GetString ("CAPI_RAND"), SRC_POS, CryptoAPILastError);
+		AbortProcessDirect (szTmp);
+	}
 
 	RegisterRedTick(hInstance);
 
@@ -9023,6 +9033,7 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *lpszComm
 	DialogBoxParamW (hInstance, MAKEINTRESOURCEW (IDD_VOL_CREATION_WIZARD_DLG), NULL, (DLGPROC) MainDialogProc, 
 		(LPARAM)lpszCommandLine);
 
+	FinalizeApp ();
 	return 0;
 }
 
diff --git a/src/Main/CommandLineInterface.cpp b/src/Main/CommandLineInterface.cpp
index fd16447..82a99e7 100644
--- a/src/Main/CommandLineInterface.cpp
+++ b/src/Main/CommandLineInterface.cpp
@@ -17,7 +17,7 @@
 
 namespace VeraCrypt
 {
-	CommandLineInterface::CommandLineInterface (wxCmdLineParser &parser, UserInterfaceType::Enum interfaceType) :
+	CommandLineInterface::CommandLineInterface (int argc, wchar_t** argv, UserInterfaceType::Enum interfaceType) :
 		ArgCommand (CommandId::None),
 		ArgFilesystem (VolumeCreationOptions::FilesystemType::Unknown),
 		ArgNoHiddenVolumeProtection (false),
@@ -26,6 +26,9 @@ namespace VeraCrypt
 		ArgTrueCryptMode (false),
 		StartBackgroundTask (false)
 	{
+		wxCmdLineParser parser;
+		parser.SetCmdLine (argc, argv);
+
 		parser.SetSwitchChars (L"-");
 
 		parser.AddOption (L"",  L"auto-mount",			_("Auto mount device-hosted/favorite volumes"));
@@ -475,6 +478,22 @@ namespace VeraCrypt
 		// Parameters
 		if (parser.GetParamCount() > 0)
 		{
+			// in case of GUI interface, we load the preference when only 
+			// specifying volume path without any option/switch
+			if (Application::GetUserInterfaceType() != UserInterfaceType::Text)
+			{
+				// check if only parameters were specified in the command line
+				// (e.g. when associating .hc extension in mimetype with /usr/bin/veracrypt)
+				bool onlyParametersPresent = (parser.GetParamCount() == (size_t) (argc - 1));
+
+				if (onlyParametersPresent)
+				{
+					// no options/switches, so we load prefences now
+					Preferences.Load();
+					ArgMountOptions = Preferences.DefaultMountOptions;
+				}
+			}
+
 			if (ArgCommand == CommandId::None)
 			{
 				ArgCommand = CommandId::MountVolume;
diff --git a/src/Main/CommandLineInterface.h b/src/Main/CommandLineInterface.h
index c0d3f19..217b5c3 100644
--- a/src/Main/CommandLineInterface.h
+++ b/src/Main/CommandLineInterface.h
@@ -50,7 +50,7 @@ namespace VeraCrypt
 	struct CommandLineInterface
 	{
 	public:
-		CommandLineInterface (wxCmdLineParser &parser, UserInterfaceType::Enum interfaceType);
+		CommandLineInterface (int argc, wchar_t** argv, UserInterfaceType::Enum interfaceType);
 		virtual ~CommandLineInterface ();
 
 
diff --git a/src/Main/Forms/ChangePasswordDialog.cpp b/src/Main/Forms/ChangePasswordDialog.cpp
index 1889e5c..d4a8853 100644
--- a/src/Main/Forms/ChangePasswordDialog.cpp
+++ b/src/Main/Forms/ChangePasswordDialog.cpp
@@ -48,11 +48,11 @@ namespace VeraCrypt
 			throw ParameterIncorrect (SRC_POS);
 		}
 
-		CurrentPasswordPanel = new VolumePasswordPanel (this, password, false, keyfiles, false, true, true, false, true, true);
+		CurrentPasswordPanel = new VolumePasswordPanel (this, NULL, password, false, keyfiles, false, true, true, false, true, true);
 		CurrentPasswordPanel->UpdateEvent.Connect (EventConnector <ChangePasswordDialog> (this, &ChangePasswordDialog::OnPasswordPanelUpdate));
 		CurrentPasswordPanelSizer->Add (CurrentPasswordPanel, 1, wxALL | wxEXPAND);
 
-		NewPasswordPanel = new VolumePasswordPanel (this, newPassword, true, newKeyfiles, false, enableNewPassword, enableNewKeyfiles, enableNewPassword, enablePkcs5Prf);
+		NewPasswordPanel = new VolumePasswordPanel (this, NULL, newPassword, true, newKeyfiles, false, enableNewPassword, enableNewKeyfiles, enableNewPassword, enablePkcs5Prf);
 		NewPasswordPanel->UpdateEvent.Connect (EventConnector <ChangePasswordDialog> (this, &ChangePasswordDialog::OnPasswordPanelUpdate));
 		NewPasswordPanelSizer->Add (NewPasswordPanel, 1, wxALL | wxEXPAND);
 		
diff --git a/src/Main/Forms/Forms.cpp b/src/Main/Forms/Forms.cpp
old mode 100644
new mode 100755
index 5e28afd..d05524d
--- a/src/Main/Forms/Forms.cpp
+++ b/src/Main/Forms/Forms.cpp
@@ -137,6 +137,10 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t
 	DefaultKeyfilesMenuItem = new wxMenuItem( SettingsMenu, wxID_ANY, wxString( _("Default Keyfiles...") ) , wxEmptyString, wxITEM_NORMAL );
 	SettingsMenu->Append( DefaultKeyfilesMenuItem );
 	
+	wxMenuItem* DefaultMountParametersMenuItem;
+	DefaultMountParametersMenuItem = new wxMenuItem( SettingsMenu, wxID_ANY, wxString( _("Default Mount Parameters...") ) , wxEmptyString, wxITEM_NORMAL );
+	SettingsMenu->Append( DefaultMountParametersMenuItem );
+	
 	wxMenuItem* SecurityTokenPreferencesMenuItem;
 	SecurityTokenPreferencesMenuItem = new wxMenuItem( SettingsMenu, wxID_ANY, wxString( _("Security Tokens...") ) , wxEmptyString, wxITEM_NORMAL );
 	SettingsMenu->Append( SecurityTokenPreferencesMenuItem );
@@ -428,6 +432,7 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t
 	this->Connect( WipeCachedPasswordsMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnWipeCacheButtonClick ) );
 	this->Connect( HotkeysMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnHotkeysMenuItemSelected ) );
 	this->Connect( DefaultKeyfilesMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnDefaultKeyfilesMenuItemSelected ) );
+	this->Connect( DefaultMountParametersMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnDefaultMountParametersMenuItemSelected ) );
 	this->Connect( SecurityTokenPreferencesMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnSecurityTokenPreferencesMenuItemSelected ) );
 	this->Connect( PreferencesMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnPreferencesMenuItemSelected ) );
 	this->Connect( UserGuideMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnUserGuideMenuItemSelected ) );
@@ -490,6 +495,7 @@ MainFrameBase::~MainFrameBase()
 	this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnWipeCacheButtonClick ) );
 	this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnHotkeysMenuItemSelected ) );
 	this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnDefaultKeyfilesMenuItemSelected ) );
+	this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnDefaultMountParametersMenuItemSelected ) );
 	this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnSecurityTokenPreferencesMenuItemSelected ) );
 	this->Disconnect( wxID_PREFERENCES, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnPreferencesMenuItemSelected ) );
 	this->Disconnect( wxID_HELP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnUserGuideMenuItemSelected ) );
@@ -840,7 +846,7 @@ BenchmarkDialogBase::~BenchmarkDialogBase()
 ChangePasswordDialogBase::ChangePasswordDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
 {
 	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
-	this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY );
+	this->SetExtraStyle( GetExtraStyle() | wxWS_EX_VALIDATE_RECURSIVELY );
 	
 	wxBoxSizer* bSizer30;
 	bSizer30 = new wxBoxSizer( wxVERTICAL );
@@ -909,7 +915,7 @@ ChangePasswordDialogBase::~ChangePasswordDialogBase()
 DeviceSelectionDialogBase::DeviceSelectionDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
 {
 	this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
-	this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY );
+	this->SetExtraStyle( GetExtraStyle() | wxWS_EX_VALIDATE_RECURSIVELY );
 	
 	wxBoxSizer* bSizer3;
 	bSizer3 = new wxBoxSizer( wxVERTICAL );
@@ -1216,7 +1222,7 @@ FavoriteVolumesDialogBase::~FavoriteVolumesDialogBase()
 KeyfilesDialogBase::KeyfilesDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
 {
 	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
-	this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY );
+	this->SetExtraStyle( GetExtraStyle() | wxWS_EX_VALIDATE_RECURSIVELY );
 	
 	wxBoxSizer* bSizer26;
 	bSizer26 = new wxBoxSizer( wxVERTICAL );
@@ -1499,7 +1505,7 @@ LegalNoticesDialogBase::~LegalNoticesDialogBase()
 MountOptionsDialogBase::MountOptionsDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
 {
 	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
-	this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY );
+	this->SetExtraStyle( GetExtraStyle() | wxWS_EX_VALIDATE_RECURSIVELY );
 	
 	wxBoxSizer* bSizer5;
 	bSizer5 = new wxBoxSizer( wxVERTICAL );
@@ -1757,7 +1763,7 @@ NewSecurityTokenKeyfileDialogBase::~NewSecurityTokenKeyfileDialogBase()
 PreferencesDialogBase::PreferencesDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
 {
 	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
-	this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY );
+	this->SetExtraStyle( GetExtraStyle() | wxWS_EX_VALIDATE_RECURSIVELY );
 	
 	wxBoxSizer* bSizer32;
 	bSizer32 = new wxBoxSizer( wxVERTICAL );
@@ -1862,6 +1868,24 @@ PreferencesDialogBase::PreferencesDialogBase( wxWindow* parent, wxWindowID id, c
 	CachePasswordsCheckBox = new wxCheckBox( DefaultMountOptionsPage, wxID_ANY, _("Cache passwords in memory"), wxDefaultPosition, wxDefaultSize, 0 );
 	sbSizer15->Add( CachePasswordsCheckBox, 0, wxALL, 5 );
 	
+	TrueCryptModeCheckBox = new wxCheckBox( DefaultMountOptionsPage, wxID_ANY, _("TrueCrypt Mode"), wxDefaultPosition, wxDefaultSize, 0 );
+	sbSizer15->Add( TrueCryptModeCheckBox, 0, wxALL, 5 );
+	
+	wxBoxSizer* bSizer163;
+	bSizer163 = new wxBoxSizer( wxHORIZONTAL );
+	
+	Pkcs5PrfStaticText = new wxStaticText( DefaultMountOptionsPage, wxID_ANY, _("PKCS5-PRF:"), wxDefaultPosition, wxDefaultSize, 0 );
+	Pkcs5PrfStaticText->Wrap( -1 );
+	bSizer163->Add( Pkcs5PrfStaticText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+	
+	wxArrayString Pkcs5PrfChoiceChoices;
+	Pkcs5PrfChoice = new wxChoice( DefaultMountOptionsPage, wxID_ANY, wxDefaultPosition, wxDefaultSize, Pkcs5PrfChoiceChoices, 0 );
+	Pkcs5PrfChoice->SetSelection( 0 );
+	bSizer163->Add( Pkcs5PrfChoice, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+	
+	
+	sbSizer15->Add( bSizer163, 0, wxEXPAND, 5 );
+	
 	
 	bSizer35->Add( sbSizer15, 0, wxEXPAND|wxALL, 5 );
 	
@@ -2357,7 +2381,7 @@ RandomPoolEnrichmentDialogBase::~RandomPoolEnrichmentDialogBase()
 SecurityTokenKeyfilesDialogBase::SecurityTokenKeyfilesDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
 {
 	this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
-	this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY );
+	this->SetExtraStyle( GetExtraStyle() | wxWS_EX_VALIDATE_RECURSIVELY );
 	
 	wxBoxSizer* bSizer3;
 	bSizer3 = new wxBoxSizer( wxVERTICAL );
diff --git a/src/Main/Forms/Forms.h b/src/Main/Forms/Forms.h
old mode 100644
new mode 100755
index 9e8a02b..2409768
--- a/src/Main/Forms/Forms.h
+++ b/src/Main/Forms/Forms.h
@@ -119,6 +119,7 @@ namespace VeraCrypt
 			virtual void OnWipeCacheButtonClick( wxCommandEvent& event ) { event.Skip(); }
 			virtual void OnHotkeysMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
 			virtual void OnDefaultKeyfilesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
+			virtual void OnDefaultMountParametersMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
 			virtual void OnSecurityTokenPreferencesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
 			virtual void OnPreferencesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
 			virtual void OnUserGuideMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
@@ -550,10 +551,12 @@ namespace VeraCrypt
 			wxCheckBox* PreserveTimestampsCheckBox;
 			wxCheckBox* WipeCacheOnCloseCheckBox;
 			wxCheckBox* WipeCacheOnAutoDismountCheckBox;
-			wxPanel* DefaultMountOptionsPage;
 			wxCheckBox* MountReadOnlyCheckBox;
 			wxCheckBox* MountRemovableCheckBox;
 			wxCheckBox* CachePasswordsCheckBox;
+			wxCheckBox* TrueCryptModeCheckBox;
+			wxStaticText* Pkcs5PrfStaticText;
+			wxChoice* Pkcs5PrfChoice;
 			wxStaticBoxSizer* FilesystemSizer;
 			wxTextCtrl* FilesystemOptionsTextCtrl;
 			wxPanel* BackgroundTaskPanel;
@@ -613,6 +616,7 @@ namespace VeraCrypt
 			
 		
 		public:
+			wxPanel* DefaultMountOptionsPage;
 			wxPanel* DefaultKeyfilesPage;
 			wxPanel* SecurityTokensPage;
 			wxPanel* HotkeysPage;
diff --git a/src/Main/Forms/MainFrame.cpp b/src/Main/Forms/MainFrame.cpp
old mode 100644
new mode 100755
index ca4d7d6..b4f2983
--- a/src/Main/Forms/MainFrame.cpp
+++ b/src/Main/Forms/MainFrame.cpp
@@ -90,6 +90,7 @@ namespace VeraCrypt
 			}
 		}
 
+		Connect( wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrame::OnQuit ) );
 		Connect( wxID_ANY, wxEVT_COMMAND_UPDATE_VOLUME_LIST, wxCommandEventHandler( MainFrame::OnUpdateVolumeList ) );
 		Connect( wxID_ANY, wxEVT_COMMAND_PREF_UPDATED, wxCommandEventHandler( MainFrame::OnPreferencesUpdated ) );
 		Connect( wxID_ANY, wxEVT_COMMAND_OPEN_VOLUME_REQUEST, wxCommandEventHandler( MainFrame::OnOpenVolumeSystemRequest ) );
@@ -110,6 +111,7 @@ namespace VeraCrypt
 		}
 #endif
 
+		Disconnect( wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrame::OnQuit ) );
 		Disconnect( wxID_ANY, wxEVT_COMMAND_UPDATE_VOLUME_LIST, wxCommandEventHandler( MainFrame::OnUpdateVolumeList ) );
 		Disconnect( wxID_ANY, wxEVT_COMMAND_PREF_UPDATED, wxCommandEventHandler( MainFrame::OnPreferencesUpdated ) );
 		Disconnect( wxID_ANY, wxEVT_COMMAND_OPEN_VOLUME_REQUEST, wxCommandEventHandler( MainFrame::OnOpenVolumeSystemRequest ) );
@@ -181,7 +183,10 @@ namespace VeraCrypt
 			return;
 		}
 #endif
-
+#ifdef TC_MACOSX
+		if (Gui->IsInBackgroundMode())
+			Gui->SetBackgroundMode (false);
+#endif
 		ChangePasswordDialog dialog (this, volumePath, mode);
 		dialog.ShowModal();
 	}
@@ -625,6 +630,14 @@ namespace VeraCrypt
 		try
 		{
 			MountOptions mountOptions (GetPreferences().DefaultMountOptions);
+			if (CmdLine->ArgTrueCryptMode)
+			{
+				mountOptions.TrueCryptMode = CmdLine->ArgTrueCryptMode;
+			}
+			if (CmdLine->ArgHash)
+			{
+				mountOptions.Kdf = Pkcs5Kdf::GetAlgorithm (*CmdLine->ArgHash, mountOptions.TrueCryptMode);
+			}
 
 			if (SlotListCtrl->GetSelectedItemCount() == 1)
 				mountOptions.SlotNumber = SelectedSlotNumber;
@@ -642,6 +655,14 @@ namespace VeraCrypt
 		try
 		{
 			MountOptions mountOptions (GetPreferences().DefaultMountOptions);
+			if (CmdLine->ArgTrueCryptMode)
+			{
+				mountOptions.TrueCryptMode = CmdLine->ArgTrueCryptMode;
+			}
+			if (CmdLine->ArgHash)
+			{
+				mountOptions.Kdf = Pkcs5Kdf::GetAlgorithm (*CmdLine->ArgHash, mountOptions.TrueCryptMode);
+			}
 			Gui->MountAllFavoriteVolumes (mountOptions);
 		}
 		catch (exception &e)
@@ -664,6 +685,14 @@ namespace VeraCrypt
 		MountOptions mountOptions (GetPreferences().DefaultMountOptions);
 		mountOptions.SlotNumber = SelectedSlotNumber;
 		mountOptions.Path = GetSelectedVolumePath();
+		if (CmdLine->ArgTrueCryptMode)
+		{
+			mountOptions.TrueCryptMode = CmdLine->ArgTrueCryptMode;
+		}
+		if (CmdLine->ArgHash)
+		{
+			mountOptions.Kdf = Pkcs5Kdf::GetAlgorithm (*CmdLine->ArgHash, mountOptions.TrueCryptMode);
+		}
 
 		try
 		{
@@ -678,6 +707,10 @@ namespace VeraCrypt
 
 	void MainFrame::OnAboutMenuItemSelected (wxCommandEvent& event)
 	{
+#ifdef TC_MACOSX
+		if (Gui->IsInBackgroundMode())
+			Gui->SetBackgroundMode (false);
+#endif
 		AboutDialog dialog (this);
 		dialog.ShowModal();
 	}
@@ -726,6 +759,10 @@ namespace VeraCrypt
 
 	void MainFrame::OnBenchmarkMenuItemSelected (wxCommandEvent& event)
 	{
+#ifdef TC_MACOSX
+		if (Gui->IsInBackgroundMode())
+			Gui->SetBackgroundMode (false);
+#endif
 		BenchmarkDialog dialog (this);
 		dialog.ShowModal();
 	}
@@ -827,11 +864,26 @@ namespace VeraCrypt
 
 	void MainFrame::OnDefaultKeyfilesMenuItemSelected (wxCommandEvent& event)
 	{
+#ifdef TC_MACOSX
+		if (Gui->IsInBackgroundMode())
+			Gui->SetBackgroundMode (false);
+#endif
 		PreferencesDialog dialog (this);
 		dialog.SelectPage (dialog.DefaultKeyfilesPage);
 		dialog.ShowModal();
 	}
 
+	void MainFrame::OnDefaultMountParametersMenuItemSelected(wxCommandEvent& event)
+	{ 
+#ifdef TC_MACOSX
+		if (Gui->IsInBackgroundMode())
+			Gui->SetBackgroundMode (false);
+#endif
+		PreferencesDialog dialog (this);
+		dialog.SelectPage (dialog.DefaultMountOptionsPage);
+		dialog.ShowModal();
+	}
+
 	void MainFrame::OnDeviceChange (const DirectoryPath &mountPoint)
 	{
 		// Check if any host device has been removed and force dismount of volumes accordingly
@@ -864,6 +916,10 @@ namespace VeraCrypt
 
 	void MainFrame::OnEncryptionTestMenuItemSelected (wxCommandEvent& event)
 	{
+#ifdef TC_MACOSX
+		if (Gui->IsInBackgroundMode())
+			Gui->SetBackgroundMode (false);
+#endif
 		EncryptionTestDialog dialog (this);
 		dialog.ShowModal();
 	}
@@ -881,6 +937,14 @@ namespace VeraCrypt
 			SetVolumePath (favorite.Path);
 
 			MountOptions mountOptions (GetPreferences().DefaultMountOptions);
+			if (CmdLine->ArgTrueCryptMode)
+			{
+				mountOptions.TrueCryptMode = CmdLine->ArgTrueCryptMode;
+			}
+			if (CmdLine->ArgHash)
+			{
+				mountOptions.Kdf = Pkcs5Kdf::GetAlgorithm (*CmdLine->ArgHash, mountOptions.TrueCryptMode);
+			}
 			favorite.ToMountOptions (mountOptions);
 
 			shared_ptr <VolumeInfo> volume = Gui->MountVolume (mountOptions);
@@ -979,6 +1043,10 @@ namespace VeraCrypt
 
 	void MainFrame::OnHotkeysMenuItemSelected (wxCommandEvent& event)
 	{
+#ifdef TC_MACOSX
+		if (Gui->IsInBackgroundMode())
+			Gui->SetBackgroundMode (false);
+#endif
 		PreferencesDialog dialog (this);
 		dialog.SelectPage (dialog.HotkeysPage);
 		dialog.ShowModal();
@@ -986,6 +1054,10 @@ namespace VeraCrypt
 
 	void MainFrame::OnLegalNoticesMenuItemSelected (wxCommandEvent& event)
 	{
+#ifdef TC_MACOSX
+		if (Gui->IsInBackgroundMode())
+			Gui->SetBackgroundMode (false);
+#endif
 		LegalNoticesDialog dialog (this);
 		dialog.ShowModal();
 	}
@@ -1099,6 +1171,10 @@ namespace VeraCrypt
 	{
 		try
 		{
+#ifdef TC_MACOSX
+			if (Gui->IsInBackgroundMode())
+				Gui->SetBackgroundMode (false);
+#endif
 			SecurityTokenKeyfilesDialog dialog (this, false);
 			dialog.ShowModal();
 		}
@@ -1148,6 +1224,10 @@ namespace VeraCrypt
 
 	void MainFrame::OnPreferencesMenuItemSelected (wxCommandEvent& event)
 	{
+#ifdef TC_MACOSX
+		if (Gui->IsInBackgroundMode())
+			Gui->SetBackgroundMode (false);
+#endif
 		PreferencesDialog dialog (this);
 		dialog.ShowModal();
 	}
@@ -1197,6 +1277,10 @@ namespace VeraCrypt
 
 	void MainFrame::OnSecurityTokenPreferencesMenuItemSelected (wxCommandEvent& event)
 	{
+#ifdef TC_MACOSX
+		if (Gui->IsInBackgroundMode())
+			Gui->SetBackgroundMode (false);
+#endif
 		PreferencesDialog dialog (this);
 		dialog.SelectPage (dialog.SecurityTokensPage);
 		dialog.ShowModal();
@@ -1357,6 +1441,10 @@ namespace VeraCrypt
 		shared_ptr <VolumeInfo> selectedVolume = GetSelectedVolume();
 		if (selectedVolume)
 		{
+#ifdef TC_MACOSX
+			if (Gui->IsInBackgroundMode())
+				Gui->SetBackgroundMode (false);
+#endif
 			VolumePropertiesDialog dialog (this, *selectedVolume);
 			dialog.ShowModal();
 		}
@@ -1413,6 +1501,10 @@ namespace VeraCrypt
 
 	void MainFrame::OrganizeFavorites (const FavoriteVolumeList &favorites, size_t newItemCount)
 	{
+#ifdef TC_MACOSX
+		if (Gui->IsInBackgroundMode())
+			Gui->SetBackgroundMode (false);
+#endif
 		FavoriteVolumesDialog dialog (this, favorites, newItemCount);
 
 		if (dialog.ShowModal() == wxID_OK)
diff --git a/src/Main/Forms/MainFrame.h b/src/Main/Forms/MainFrame.h
index b31128c..224785c 100644
--- a/src/Main/Forms/MainFrame.h
+++ b/src/Main/Forms/MainFrame.h
@@ -67,6 +67,7 @@ namespace VeraCrypt
 		void MountAllFavorites ();
 		void MountVolume ();
 		void OnAboutMenuItemSelected (wxCommandEvent& event);
+		void OnQuit(wxCommandEvent& event) { Close(true); }
 		void OnActivate (wxActivateEvent& event);
 		void OnAddAllMountedToFavoritesMenuItemSelected (wxCommandEvent& event);
 		void OnAddToFavoritesMenuItemSelected (wxCommandEvent& event);
@@ -82,9 +83,17 @@ namespace VeraCrypt
 		void OnCloseAllSecurityTokenSessionsMenuItemSelected (wxCommandEvent& event);
 		void OnDonateMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"donate"); }
 		void OnContactMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"contact"); }
-		void OnCreateKeyfileMenuItemSelected (wxCommandEvent& event) { Gui->CreateKeyfile(); }
+		void OnCreateKeyfileMenuItemSelected (wxCommandEvent& event) 
+		{
+#ifdef TC_MACOSX
+			if (Gui->IsInBackgroundMode())
+				Gui->SetBackgroundMode (false);
+#endif
+			Gui->CreateKeyfile();
+		}
 		void OnCreateVolumeButtonClick (wxCommandEvent& event);
 		void OnDefaultKeyfilesMenuItemSelected (wxCommandEvent& event);
+		void OnDefaultMountParametersMenuItemSelected( wxCommandEvent& event );
 		void OnDismountAllButtonClick (wxCommandEvent& event);
 		void OnDismountVolumeMenuItemSelected (wxCommandEvent& event) { DismountVolume(); }
 		void OnDownloadsMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"downloads"); }
diff --git a/src/Main/Forms/MountOptionsDialog.cpp b/src/Main/Forms/MountOptionsDialog.cpp
index d4c78cb..e60492e 100644
--- a/src/Main/Forms/MountOptionsDialog.cpp
+++ b/src/Main/Forms/MountOptionsDialog.cpp
@@ -30,7 +30,7 @@ namespace VeraCrypt
 		if (disableMountOptions)
 			OptionsButton->Show (false);
 
-		PasswordPanel = new VolumePasswordPanel (this, options.Password, disableMountOptions, options.Keyfiles, !disableMountOptions, true, true, false, true, true);
+		PasswordPanel = new VolumePasswordPanel (this, &options, options.Password, disableMountOptions, options.Keyfiles, !disableMountOptions, true, true, false, true, true);
 		PasswordPanel->SetCacheCheckBoxValidator (wxGenericValidator (&Options.CachePassword));
 
 		PasswordSizer->Add (PasswordPanel, 1, wxALL | wxEXPAND);
@@ -61,7 +61,7 @@ namespace VeraCrypt
 		OptionsButton->SetLabel (OptionsButtonLabel + L" >");
 		OptionsPanel->Show (false);
 
-		ProtectionPasswordPanel = new VolumePasswordPanel (OptionsPanel, options.ProtectionPassword, true, options.ProtectionKeyfiles, false, true, true, false, true, true, _("P&assword to hidden volume:"));
+		ProtectionPasswordPanel = new VolumePasswordPanel (OptionsPanel, &options, options.ProtectionPassword, true, options.ProtectionKeyfiles, false, true, true, false, true, true, _("P&assword to hidden volume:"));
 		ProtectionPasswordSizer->Add (ProtectionPasswordPanel, 1, wxALL | wxEXPAND);
 
 		UpdateDialog();
diff --git a/src/Main/Forms/PreferencesDialog.cpp b/src/Main/Forms/PreferencesDialog.cpp
old mode 100644
new mode 100755
index e22e304..7e47b40
--- a/src/Main/Forms/PreferencesDialog.cpp
+++ b/src/Main/Forms/PreferencesDialog.cpp
@@ -48,6 +48,23 @@ namespace VeraCrypt
 		MountRemovableCheckBox->SetValidator (wxGenericValidator (&Preferences.DefaultMountOptions.Removable));
 
 		FilesystemOptionsTextCtrl->SetValue (Preferences.DefaultMountOptions.FilesystemOptions);
+		
+		TrueCryptModeCheckBox->SetValidator (wxGenericValidator (&Preferences.DefaultMountOptions.TrueCryptMode));
+		
+		int index, prfInitialIndex = 0;
+		Pkcs5PrfChoice->Append (LangString["AUTODETECTION"]);		
+
+		foreach_ref (const Pkcs5Kdf &kdf, Pkcs5Kdf::GetAvailableAlgorithms(false))
+		{
+			index = Pkcs5PrfChoice->Append (kdf.GetName());
+			if (Preferences.DefaultMountOptions.Kdf 
+				&& (Preferences.DefaultMountOptions.Kdf->GetName() == kdf.GetName())
+				)
+			{
+				prfInitialIndex = index;
+			}
+		}
+		Pkcs5PrfChoice->Select (prfInitialIndex);
 
 		// Keyfiles
 		TC_CHECK_BOX_VALIDATOR (UseKeyfiles);
@@ -342,12 +359,29 @@ namespace VeraCrypt
 #endif
 		if (!Validate())
 			return;
+			
+		shared_ptr <Pkcs5Kdf> selectedKdf;
+		if (Pkcs5PrfChoice->GetSelection () != 0)
+		{
+			try
+			{
+				selectedKdf = Pkcs5Kdf::GetAlgorithm (wstring (Pkcs5PrfChoice->GetStringSelection ()), TrueCryptModeCheckBox->IsChecked ());
+			}
+			catch (ParameterIncorrect&)
+			{
+				Gui->ShowWarning ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE");
+				return;
+			}
+		}
 
 		TransferDataFromWindow();
 
 		Preferences.DefaultMountOptions.Protection = MountReadOnlyCheckBox->IsChecked() ? VolumeProtection::ReadOnly : VolumeProtection::None;
 		Preferences.DefaultMountOptions.FilesystemOptions = FilesystemOptionsTextCtrl->GetValue();
 		Preferences.DefaultKeyfiles = *DefaultKeyfilesPanel->GetKeyfiles();
+		
+		Preferences.DefaultMountOptions.Kdf = selectedKdf;
+		Preferences.DefaultMountOptions.ProtectionKdf = selectedKdf;
 
 		bool securityTokenModuleChanged = (Preferences.SecurityTokenModule != wstring (Pkcs11ModulePathTextCtrl->GetValue()));
 		Preferences.SecurityTokenModule = wstring (Pkcs11ModulePathTextCtrl->GetValue());
diff --git a/src/Main/Forms/TrueCrypt.fbp b/src/Main/Forms/TrueCrypt.fbp
old mode 100644
new mode 100755
index c03beab..cf43cbf
--- a/src/Main/Forms/TrueCrypt.fbp
+++ b/src/Main/Forms/TrueCrypt.fbp
@@ -574,6 +574,21 @@
                         <property name="help"></property>
                         <property name="id">wxID_ANY</property>
                         <property name="kind">wxITEM_NORMAL</property>
+                        <property name="label">Default Mount Parameters...</property>
+                        <property name="name">DefaultMountParametersMenuItem</property>
+                        <property name="permission">none</property>
+                        <property name="shortcut"></property>
+                        <property name="unchecked_bitmap"></property>
+                        <event name="OnMenuSelection">OnDefaultMountParametersMenuItemSelected</event>
+                        <event name="OnUpdateUI"></event>
+                    </object>
+                    <object class="wxMenuItem" expanded="0">
+                        <property name="bitmap"></property>
+                        <property name="checked">0</property>
+                        <property name="enabled">1</property>
+                        <property name="help"></property>
+                        <property name="id">wxID_ANY</property>
+                        <property name="kind">wxITEM_NORMAL</property>
                         <property name="label">Security Tokens...</property>
                         <property name="name">SecurityTokenPreferencesMenuItem</property>
                         <property name="permission">none</property>
@@ -14204,7 +14219,7 @@
                                         <property name="pane_border">1</property>
                                         <property name="pane_position"></property>
                                         <property name="pane_size"></property>
-                                        <property name="permission">protected</property>
+                                        <property name="permission">public</property>
                                         <property name="pin_button">1</property>
                                         <property name="pos"></property>
                                         <property name="resize">Resizable</property>
@@ -14529,6 +14544,276 @@
                                                                     <event name="OnUpdateUI"></event>
                                                                 </object>
                                                             </object>
+                                                            <object class="sizeritem" expanded="0">
+                                                                <property name="border">5</property>
+                                                                <property name="flag">wxALL</property>
+                                                                <property name="proportion">0</property>
+                                                                <object class="wxCheckBox" expanded="0">
+                                                                    <property name="BottomDockable">1</property>
+                                                                    <property name="LeftDockable">1</property>
+                                                                    <property name="RightDockable">1</property>
+                                                                    <property name="TopDockable">1</property>
+                                                                    <property name="aui_layer"></property>
+                                                                    <property name="aui_name"></property>
+                                                                    <property name="aui_position"></property>
+                                                                    <property name="aui_row"></property>
+                                                                    <property name="best_size"></property>
+                                                                    <property name="bg"></property>
+                                                                    <property name="caption"></property>
+                                                                    <property name="caption_visible">1</property>
+                                                                    <property name="center_pane">0</property>
+                                                                    <property name="checked">0</property>
+                                                                    <property name="close_button">1</property>
+                                                                    <property name="context_help"></property>
+                                                                    <property name="context_menu">1</property>
+                                                                    <property name="default_pane">0</property>
+                                                                    <property name="dock">Dock</property>
+                                                                    <property name="dock_fixed">0</property>
+                                                                    <property name="docking">Left</property>
+                                                                    <property name="enabled">1</property>
+                                                                    <property name="fg"></property>
+                                                                    <property name="floatable">1</property>
+                                                                    <property name="font"></property>
+                                                                    <property name="gripper">0</property>
+                                                                    <property name="hidden">0</property>
+                                                                    <property name="id">wxID_ANY</property>
+                                                                    <property name="label">TrueCrypt Mode</property>
+                                                                    <property name="max_size"></property>
+                                                                    <property name="maximize_button">0</property>
+                                                                    <property name="maximum_size"></property>
+                                                                    <property name="min_size"></property>
+                                                                    <property name="minimize_button">0</property>
+                                                                    <property name="minimum_size"></property>
+                                                                    <property name="moveable">1</property>
+                                                                    <property name="name">TrueCryptModeCheckBox</property>
+                                                                    <property name="pane_border">1</property>
+                                                                    <property name="pane_position"></property>
+                                                                    <property name="pane_size"></property>
+                                                                    <property name="permission">protected</property>
+                                                                    <property name="pin_button">1</property>
+                                                                    <property name="pos"></property>
+                                                                    <property name="resize">Resizable</property>
+                                                                    <property name="show">1</property>
+                                                                    <property name="size"></property>
+                                                                    <property name="style"></property>
+                                                                    <property name="subclass"></property>
+                                                                    <property name="toolbar_pane">0</property>
+                                                                    <property name="tooltip"></property>
+                                                                    <property name="validator_data_type"></property>
+                                                                    <property name="validator_style">wxFILTER_NONE</property>
+                                                                    <property name="validator_type">wxDefaultValidator</property>
+                                                                    <property name="validator_variable"></property>
+                                                                    <property name="window_extra_style"></property>
+                                                                    <property name="window_name"></property>
+                                                                    <property name="window_style"></property>
+                                                                    <event name="OnChar"></event>
+                                                                    <event name="OnCheckBox"></event>
+                                                                    <event name="OnEnterWindow"></event>
+                                                                    <event name="OnEraseBackground"></event>
+                                                                    <event name="OnKeyDown"></event>
+                                                                    <event name="OnKeyUp"></event>
+                                                                    <event name="OnKillFocus"></event>
+                                                                    <event name="OnLeaveWindow"></event>
+                                                                    <event name="OnLeftDClick"></event>
+                                                                    <event name="OnLeftDown"></event>
+                                                                    <event name="OnLeftUp"></event>
+                                                                    <event name="OnMiddleDClick"></event>
+                                                                    <event name="OnMiddleDown"></event>
+                                                                    <event name="OnMiddleUp"></event>
+                                                                    <event name="OnMotion"></event>
+                                                                    <event name="OnMouseEvents"></event>
+                                                                    <event name="OnMouseWheel"></event>
+                                                                    <event name="OnPaint"></event>
+                                                                    <event name="OnRightDClick"></event>
+                                                                    <event name="OnRightDown"></event>
+                                                                    <event name="OnRightUp"></event>
+                                                                    <event name="OnSetFocus"></event>
+                                                                    <event name="OnSize"></event>
+                                                                    <event name="OnUpdateUI"></event>
+                                                                </object>
+                                                            </object>
+                                                            <object class="sizeritem" expanded="1">
+                                                                <property name="border">5</property>
+                                                                <property name="flag">wxEXPAND</property>
+                                                                <property name="proportion">0</property>
+                                                                <object class="wxBoxSizer" expanded="0">
+                                                                    <property name="minimum_size"></property>
+                                                                    <property name="name">bSizer163</property>
+                                                                    <property name="orient">wxHORIZONTAL</property>
+                                                                    <property name="permission">none</property>
+                                                                    <object class="sizeritem" expanded="0">
+                                                                        <property name="border">5</property>
+                                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
+                                                                        <property name="proportion">0</property>
+                                                                        <object class="wxStaticText" expanded="0">
+                                                                            <property name="BottomDockable">1</property>
+                                                                            <property name="LeftDockable">1</property>
+                                                                            <property name="RightDockable">1</property>
+                                                                            <property name="TopDockable">1</property>
+                                                                            <property name="aui_layer"></property>
+                                                                            <property name="aui_name"></property>
+                                                                            <property name="aui_position"></property>
+                                                                            <property name="aui_row"></property>
+                                                                            <property name="best_size"></property>
+                                                                            <property name="bg"></property>
+                                                                            <property name="caption"></property>
+                                                                            <property name="caption_visible">1</property>
+                                                                            <property name="center_pane">0</property>
+                                                                            <property name="close_button">1</property>
+                                                                            <property name="context_help"></property>
+                                                                            <property name="context_menu">1</property>
+                                                                            <property name="default_pane">0</property>
+                                                                            <property name="dock">Dock</property>
+                                                                            <property name="dock_fixed">0</property>
+                                                                            <property name="docking">Left</property>
+                                                                            <property name="enabled">1</property>
+                                                                            <property name="fg"></property>
+                                                                            <property name="floatable">1</property>
+                                                                            <property name="font"></property>
+                                                                            <property name="gripper">0</property>
+                                                                            <property name="hidden">0</property>
+                                                                            <property name="id">wxID_ANY</property>
+                                                                            <property name="label">PKCS5-PRF:</property>
+                                                                            <property name="max_size"></property>
+                                                                            <property name="maximize_button">0</property>
+                                                                            <property name="maximum_size"></property>
+                                                                            <property name="min_size"></property>
+                                                                            <property name="minimize_button">0</property>
+                                                                            <property name="minimum_size"></property>
+                                                                            <property name="moveable">1</property>
+                                                                            <property name="name">Pkcs5PrfStaticText</property>
+                                                                            <property name="pane_border">1</property>
+                                                                            <property name="pane_position"></property>
+                                                                            <property name="pane_size"></property>
+                                                                            <property name="permission">protected</property>
+                                                                            <property name="pin_button">1</property>
+                                                                            <property name="pos"></property>
+                                                                            <property name="resize">Resizable</property>
+                                                                            <property name="show">1</property>
+                                                                            <property name="size"></property>
+                                                                            <property name="style"></property>
+                                                                            <property name="subclass"></property>
+                                                                            <property name="toolbar_pane">0</property>
+                                                                            <property name="tooltip"></property>
+                                                                            <property name="window_extra_style"></property>
+                                                                            <property name="window_name"></property>
+                                                                            <property name="window_style"></property>
+                                                                            <property name="wrap">-1</property>
+                                                                            <event name="OnChar"></event>
+                                                                            <event name="OnEnterWindow"></event>
+                                                                            <event name="OnEraseBackground"></event>
+                                                                            <event name="OnKeyDown"></event>
+                                                                            <event name="OnKeyUp"></event>
+                                                                            <event name="OnKillFocus"></event>
+                                                                            <event name="OnLeaveWindow"></event>
+                                                                            <event name="OnLeftDClick"></event>
+                                                                            <event name="OnLeftDown"></event>
+                                                                            <event name="OnLeftUp"></event>
+                                                                            <event name="OnMiddleDClick"></event>
+                                                                            <event name="OnMiddleDown"></event>
+                                                                            <event name="OnMiddleUp"></event>
+                                                                            <event name="OnMotion"></event>
+                                                                            <event name="OnMouseEvents"></event>
+                                                                            <event name="OnMouseWheel"></event>
+                                                                            <event name="OnPaint"></event>
+                                                                            <event name="OnRightDClick"></event>
+                                                                            <event name="OnRightDown"></event>
+                                                                            <event name="OnRightUp"></event>
+                                                                            <event name="OnSetFocus"></event>
+                                                                            <event name="OnSize"></event>
+                                                                            <event name="OnUpdateUI"></event>
+                                                                        </object>
+                                                                    </object>
+                                                                    <object class="sizeritem" expanded="0">
+                                                                        <property name="border">5</property>
+                                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
+                                                                        <property name="proportion">0</property>
+                                                                        <object class="wxChoice" expanded="0">
+                                                                            <property name="BottomDockable">1</property>
+                                                                            <property name="LeftDockable">1</property>
+                                                                            <property name="RightDockable">1</property>
+                                                                            <property name="TopDockable">1</property>
+                                                                            <property name="aui_layer"></property>
+                                                                            <property name="aui_name"></property>
+                                                                            <property name="aui_position"></property>
+                                                                            <property name="aui_row"></property>
+                                                                            <property name="best_size"></property>
+                                                                            <property name="bg"></property>
+                                                                            <property name="caption"></property>
+                                                                            <property name="caption_visible">1</property>
+                                                                            <property name="center_pane">0</property>
+                                                                            <property name="choices"></property>
+                                                                            <property name="close_button">1</property>
+                                                                            <property name="context_help"></property>
+                                                                            <property name="context_menu">1</property>
+                                                                            <property name="default_pane">0</property>
+                                                                            <property name="dock">Dock</property>
+                                                                            <property name="dock_fixed">0</property>
+                                                                            <property name="docking">Left</property>
+                                                                            <property name="enabled">1</property>
+                                                                            <property name="fg"></property>
+                                                                            <property name="floatable">1</property>
+                                                                            <property name="font"></property>
+                                                                            <property name="gripper">0</property>
+                                                                            <property name="hidden">0</property>
+                                                                            <property name="id">wxID_ANY</property>
+                                                                            <property name="max_size"></property>
+                                                                            <property name="maximize_button">0</property>
+                                                                            <property name="maximum_size"></property>
+                                                                            <property name="min_size"></property>
+                                                                            <property name="minimize_button">0</property>
+                                                                            <property name="minimum_size"></property>
+                                                                            <property name="moveable">1</property>
+                                                                            <property name="name">Pkcs5PrfChoice</property>
+                                                                            <property name="pane_border">1</property>
+                                                                            <property name="pane_position"></property>
+                                                                            <property name="pane_size"></property>
+                                                                            <property name="permission">protected</property>
+                                                                            <property name="pin_button">1</property>
+                                                                            <property name="pos"></property>
+                                                                            <property name="resize">Resizable</property>
+                                                                            <property name="selection">0</property>
+                                                                            <property name="show">1</property>
+                                                                            <property name="size"></property>
+                                                                            <property name="style"></property>
+                                                                            <property name="subclass"></property>
+                                                                            <property name="toolbar_pane">0</property>
+                                                                            <property name="tooltip"></property>
+                                                                            <property name="validator_data_type"></property>
+                                                                            <property name="validator_style">wxFILTER_NONE</property>
+                                                                            <property name="validator_type">wxDefaultValidator</property>
+                                                                            <property name="validator_variable"></property>
+                                                                            <property name="window_extra_style"></property>
+                                                                            <property name="window_name"></property>
+                                                                            <property name="window_style"></property>
+                                                                            <event name="OnChar"></event>
+                                                                            <event name="OnChoice"></event>
+                                                                            <event name="OnEnterWindow"></event>
+                                                                            <event name="OnEraseBackground"></event>
+                                                                            <event name="OnKeyDown"></event>
+                                                                            <event name="OnKeyUp"></event>
+                                                                            <event name="OnKillFocus"></event>
+                                                                            <event name="OnLeaveWindow"></event>
+                                                                            <event name="OnLeftDClick"></event>
+                                                                            <event name="OnLeftDown"></event>
+                                                                            <event name="OnLeftUp"></event>
+                                                                            <event name="OnMiddleDClick"></event>
+                                                                            <event name="OnMiddleDown"></event>
+                                                                            <event name="OnMiddleUp"></event>
+                                                                            <event name="OnMotion"></event>
+                                                                            <event name="OnMouseEvents"></event>
+                                                                            <event name="OnMouseWheel"></event>
+                                                                            <event name="OnPaint"></event>
+                                                                            <event name="OnRightDClick"></event>
+                                                                            <event name="OnRightDown"></event>
+                                                                            <event name="OnRightUp"></event>
+                                                                            <event name="OnSetFocus"></event>
+                                                                            <event name="OnSize"></event>
+                                                                            <event name="OnUpdateUI"></event>
+                                                                        </object>
+                                                                    </object>
+                                                                </object>
+                                                            </object>
                                                         </object>
                                                     </object>
                                                     <object class="sizeritem" expanded="1">
diff --git a/src/Main/Forms/VolumeCreationWizard.cpp b/src/Main/Forms/VolumeCreationWizard.cpp
old mode 100644
new mode 100755
index bff459a..12dc745
--- a/src/Main/Forms/VolumeCreationWizard.cpp
+++ b/src/Main/Forms/VolumeCreationWizard.cpp
@@ -437,6 +437,8 @@ namespace VeraCrypt
 					mountOptions.Protection = VolumeProtection::None;
 					mountOptions.Password = Password;
 					mountOptions.Keyfiles = Keyfiles;
+					mountOptions.Kdf = Kdf;
+					mountOptions.TrueCryptMode = false;
 
 					shared_ptr <VolumeInfo> volume = Core->MountVolume (mountOptions);
 					finally_do_arg (shared_ptr <VolumeInfo>, volume, { Core->DismountVolume (finally_arg, true); });
@@ -477,6 +479,10 @@ namespace VeraCrypt
 
 					if (SelectedFilesystemType == VolumeCreationOptions::FilesystemType::MacOsExt && VolumeSize >= 10 * BYTES_PER_MB)
 						args.push_back ("-J");
+					
+					// Perform a quick NTFS formatting
+					if (SelectedFilesystemType == VolumeCreationOptions::FilesystemType::NTFS)
+						args.push_back ("-f");
 
 					args.push_back (string (virtualDevice));
 
diff --git a/src/Main/Forms/VolumePasswordPanel.cpp b/src/Main/Forms/VolumePasswordPanel.cpp
index e458276..deab280 100644
--- a/src/Main/Forms/VolumePasswordPanel.cpp
+++ b/src/Main/Forms/VolumePasswordPanel.cpp
@@ -14,7 +14,7 @@
 
 namespace VeraCrypt
 {
-	VolumePasswordPanel::VolumePasswordPanel (wxWindow* parent, shared_ptr <VolumePassword> password, bool disableTruecryptMode, shared_ptr <KeyfileList> keyfiles, bool enableCache, bool enablePassword, bool enableKeyfiles, bool enableConfirmation, bool enablePkcs5Prf, bool isMountPassword, const wxString &passwordLabel)
+	VolumePasswordPanel::VolumePasswordPanel (wxWindow* parent, MountOptions* options, shared_ptr <VolumePassword> password, bool disableTruecryptMode, shared_ptr <KeyfileList> keyfiles, bool enableCache, bool enablePassword, bool enableKeyfiles, bool enableConfirmation, bool enablePkcs5Prf, bool isMountPassword, const wxString &passwordLabel)
 		: VolumePasswordPanelBase (parent), Keyfiles (new KeyfileList)
 	{
 		if (keyfiles)
@@ -67,8 +67,14 @@ namespace VeraCrypt
 		HeaderWipeCountText->Show (enablePkcs5Prf && !isMountPassword);
 		HeaderWipeCount->Show (enablePkcs5Prf && !isMountPassword);
 
+		if (options && !disableTruecryptMode)
+		{
+			TrueCryptModeCheckBox->SetValue (options->TrueCryptMode);
+		}
+
 		if (enablePkcs5Prf)
 		{	
+			int index, prfInitialIndex = 0;
 			if (isMountPassword)
 			{
 				// case of password for mounting
@@ -78,9 +84,17 @@ namespace VeraCrypt
 			foreach_ref (const Pkcs5Kdf &kdf, Pkcs5Kdf::GetAvailableAlgorithms(false))
 			{
 				if (!kdf.IsDeprecated() || isMountPassword)
-					Pkcs5PrfChoice->Append (kdf.GetName());
+				{
+					index = Pkcs5PrfChoice->Append (kdf.GetName());
+					if (isMountPassword && options && options->Kdf 
+						&& (options->Kdf->GetName() == kdf.GetName())
+					   )
+					{
+						prfInitialIndex = index;
+					}
+				}
 			}
-			Pkcs5PrfChoice->Select (0);
+			Pkcs5PrfChoice->Select (prfInitialIndex);
 		}
 
 		if (!enablePkcs5Prf || (!enablePassword && !enableKeyfiles))
diff --git a/src/Main/Forms/VolumePasswordPanel.h b/src/Main/Forms/VolumePasswordPanel.h
index c3e59da..4cd338c 100644
--- a/src/Main/Forms/VolumePasswordPanel.h
+++ b/src/Main/Forms/VolumePasswordPanel.h
@@ -18,7 +18,7 @@ namespace VeraCrypt
 	class VolumePasswordPanel : public VolumePasswordPanelBase
 	{
 	public:
-		VolumePasswordPanel (wxWindow* parent, shared_ptr <VolumePassword> password, bool disableTruecryptMode, shared_ptr <KeyfileList> keyfiles, bool enableCache = false, bool enablePassword = true, bool enableKeyfiles = true, bool enableConfirmation = false, bool enablePkcs5Prf = false, bool isMountPassword = false, const wxString &passwordLabel = wxString());
+		VolumePasswordPanel (wxWindow* parent, MountOptions* options, shared_ptr <VolumePassword> password, bool disableTruecryptMode, shared_ptr <KeyfileList> keyfiles, bool enableCache = false, bool enablePassword = true, bool enableKeyfiles = true, bool enableConfirmation = false, bool enablePkcs5Prf = false, bool isMountPassword = false, const wxString &passwordLabel = wxString());
 		virtual ~VolumePasswordPanel ();
 
 		void AddKeyfile (shared_ptr <Keyfile> keyfile);
diff --git a/src/Main/Forms/VolumePasswordWizardPage.cpp b/src/Main/Forms/VolumePasswordWizardPage.cpp
index 0f80ce8..c1f9160 100644
--- a/src/Main/Forms/VolumePasswordWizardPage.cpp
+++ b/src/Main/Forms/VolumePasswordWizardPage.cpp
@@ -15,7 +15,7 @@ namespace VeraCrypt
 	VolumePasswordWizardPage::VolumePasswordWizardPage (wxPanel* parent, shared_ptr <VolumePassword> password, shared_ptr <KeyfileList> keyfiles, bool enableConfirmation)
 		: VolumePasswordWizardPageBase (parent), ConfirmationMode (enableConfirmation)
 	{
-		PasswordPanel = new VolumePasswordPanel (this, password, true, keyfiles, false, true, true, enableConfirmation, !enableConfirmation, !enableConfirmation);
+		PasswordPanel = new VolumePasswordPanel (this, NULL, password, true, keyfiles, false, true, true, enableConfirmation, !enableConfirmation, !enableConfirmation);
 		PasswordPanel->UpdateEvent.Connect (EventConnector <VolumePasswordWizardPage> (this, &VolumePasswordWizardPage::OnPasswordPanelUpdate));
 
 		PasswordPanelSizer->Add (PasswordPanel, 1, wxALL | wxEXPAND);
diff --git a/src/Main/Forms/WaitDialog.cpp b/src/Main/Forms/WaitDialog.cpp
index a60c5e4..048bb91 100644
--- a/src/Main/Forms/WaitDialog.cpp
+++ b/src/Main/Forms/WaitDialog.cpp
@@ -92,6 +92,10 @@ namespace VeraCrypt
 		VC_CONVERT_EXCEPTION (SecurityTokenKeyfileNotFound);
 		VC_CONVERT_EXCEPTION (UnsupportedAlgoInTrueCryptMode);	
 		VC_CONVERT_EXCEPTION (UnsupportedTrueCryptFormat);
+		VC_CONVERT_EXCEPTION (SystemException);
+		VC_CONVERT_EXCEPTION (CipherException);
+		VC_CONVERT_EXCEPTION (VolumeException);
+		VC_CONVERT_EXCEPTION (PasswordException);
 		throw *ex;
 	}
 }
diff --git a/src/Main/GraphicUserInterface.cpp b/src/Main/GraphicUserInterface.cpp
index 67d8d87..3b4da41 100644
--- a/src/Main/GraphicUserInterface.cpp
+++ b/src/Main/GraphicUserInterface.cpp
@@ -622,10 +622,20 @@ namespace VeraCrypt
 	}
 
 #ifdef TC_MACOSX
-	void GraphicUserInterface::MacOpenFile (const wxString &fileName)
+	void GraphicUserInterface::MacOpenFiles (const wxArrayString &fileNames)
 	{
-		OpenVolumeSystemRequestEventArgs eventArgs (fileName);
-		OpenVolumeSystemRequestEvent.Raise (eventArgs);
+		if (fileNames.GetCount() > 0)
+		{
+			// we can only put one volume path at a time on the text field
+			// so we take the first on the list
+			OpenVolumeSystemRequestEventArgs eventArgs (fileNames[0]);
+			OpenVolumeSystemRequestEvent.Raise (eventArgs);
+		}
+	}
+
+	void GraphicUserInterface::MacReopenApp ()
+	{
+		SetBackgroundMode (false);
 	}
 #endif
 
@@ -842,8 +852,9 @@ namespace VeraCrypt
 
 			wxLogLevel logLevel = wxLog::GetLogLevel();
 			wxLog::SetLogLevel (wxLOG_Error);
-
-			SingleInstanceChecker.reset (new wxSingleInstanceChecker (wxString (L".") + Application::GetName() + L"-lock-" + wxGetUserId()));
+			
+			const wxString instanceCheckerName = wxString (L".") + Application::GetName() + L"-lock-" + wxGetUserId();
+			SingleInstanceChecker.reset (new wxSingleInstanceChecker (instanceCheckerName));
 
 			wxLog::SetLogLevel (logLevel);
 
@@ -878,6 +889,7 @@ namespace VeraCrypt
 					if (write (showFifo, buf, 1) == 1)
 					{
 						close (showFifo);
+						Gui->ShowInfo (_("VeraCrypt is already running."));
 						Application::SetExitCode (0);
 						return false;
 					}
@@ -890,12 +902,28 @@ namespace VeraCrypt
 					throw;
 #endif
 				}
-#endif
+
+				// This is a false positive as VeraCrypt is not running (pipe not available)
+				// we continue running after cleaning the lock file
+				// and creating a new instance of the checker
+				wxString lockFileName = wxGetHomeDir();
+				if ( lockFileName.Last() != wxT('/') )
+				{
+					lockFileName += wxT('/');
+				}
+				lockFileName << instanceCheckerName;
+
+				if (wxRemoveFile (lockFileName))
+				{
+					SingleInstanceChecker.reset (new wxSingleInstanceChecker (instanceCheckerName));
+				}
+#else
 
 				wxLog::FlushActive();
 				Application::SetExitCode (1);
 				Gui->ShowInfo (_("VeraCrypt is already running."));
 				return false;
+#endif
 			}
 
 #ifdef TC_WINDOWS
diff --git a/src/Main/GraphicUserInterface.h b/src/Main/GraphicUserInterface.h
index f2ae5e6..7edea98 100644
--- a/src/Main/GraphicUserInterface.h
+++ b/src/Main/GraphicUserInterface.h
@@ -94,7 +94,8 @@ namespace VeraCrypt
 		void ExecuteWaitThreadRoutine (wxWindow *parent, WaitThreadRoutine *pRoutine) const;
 
 #ifdef TC_MACOSX
-		virtual void MacOpenFile (const wxString &fileName);
+		virtual void MacOpenFiles (const wxArrayString &fileNames);
+		virtual void MacReopenApp ();
 #endif
 
 		template <class T>
diff --git a/src/Main/Main.make b/src/Main/Main.make
index 39221b4..9854bd4 100644
--- a/src/Main/Main.make
+++ b/src/Main/Main.make
@@ -197,7 +197,7 @@ endif
 	@echo "VERSION=$(TC_VERSION)" >> $(INTERNAL_INSTALLER_NAME)
 	@echo "PACKAGE_TYPE=tar" >> $(INTERNAL_INSTALLER_NAME)
 	@echo "PACKAGE_NAME=$(PACKAGE_NAME)" >> $(INTERNAL_INSTALLER_NAME)
-	@echo "PACKAGE_START=864" >> $(INTERNAL_INSTALLER_NAME)
+	@echo "PACKAGE_START=916" >> $(INTERNAL_INSTALLER_NAME)
 	@echo "INSTALLER_TYPE=$(INSTALLER_TYPE)" >> $(INTERNAL_INSTALLER_NAME)
 	
 	@cat $(PWD)/Setup/Linux/veracrypt_install_template.sh >> $(INTERNAL_INSTALLER_NAME)
diff --git a/src/Main/UserInterface.cpp b/src/Main/UserInterface.cpp
index 177a4e9..62966e7 100644
--- a/src/Main/UserInterface.cpp
+++ b/src/Main/UserInterface.cpp
@@ -340,10 +340,9 @@ namespace VeraCrypt
 					message << L"\n\n" << LangString["ERR_HARDWARE_ERROR"];
 #endif
 
-#ifdef DEBUG
 				if (sysEx && sysEx->what())
 					message << L"\n\n" << StringConverter::ToWide (sysEx->what());
-#endif
+
 				return message;
 			}
 		}
@@ -501,10 +500,8 @@ namespace VeraCrypt
 
 		LangString.Init();
 		Core->Init();
-
-		wxCmdLineParser parser;
-		parser.SetCmdLine (argc, argv);
-		CmdLine.reset (new CommandLineInterface (parser, InterfaceType));
+		
+		CmdLine.reset (new CommandLineInterface (argc, argv, InterfaceType));
 		SetPreferences (CmdLine->Preferences);
 
 		Core->SetApplicationExecutablePath (Application::GetExecutablePath());
@@ -832,7 +829,7 @@ namespace VeraCrypt
 		// MIME handler for directory seems to be unavailable through wxWidgets
 		wxString desktop = GetTraits()->GetDesktopEnvironment();
 
-		if (desktop == L"GNOME" || desktop.empty())
+		if (desktop == L"GNOME")
 		{
 			args.push_back ("--no-default-window");
 			args.push_back ("--no-desktop");
@@ -865,6 +862,22 @@ namespace VeraCrypt
 				catch (exception &e) { ShowError (e); }
 			}
 		}
+		else if (wxFileName::IsFileExecutable (wxT("/usr/bin/xdg-open")))
+		{
+			// Fallback on the standard xdg-open command 
+			// which is not always available by default
+			args.push_back (string (path));
+			try
+			{
+				Process::Execute ("xdg-open", args, 2000);
+			}
+			catch (TimeOut&) { }
+			catch (exception &e) { ShowError (e); }
+		}
+		else
+		{
+			ShowWarning (wxT("Unable to find a file manager to open the mounted volume"));
+		}
 #endif
 	}
 
@@ -1575,9 +1588,12 @@ namespace VeraCrypt
 		VC_CONVERT_EXCEPTION (SecurityTokenLibraryNotInitialized);
 		VC_CONVERT_EXCEPTION (SecurityTokenKeyfileAlreadyExists);
 		VC_CONVERT_EXCEPTION (SecurityTokenKeyfileNotFound);
-		VC_CONVERT_EXCEPTION (SystemException);
-		VC_CONVERT_EXCEPTION (UnsupportedAlgoInTrueCryptMode);
+		VC_CONVERT_EXCEPTION (UnsupportedAlgoInTrueCryptMode);	
 		VC_CONVERT_EXCEPTION (UnsupportedTrueCryptFormat);
+		VC_CONVERT_EXCEPTION (SystemException);
+		VC_CONVERT_EXCEPTION (CipherException);
+		VC_CONVERT_EXCEPTION (VolumeException);
+		VC_CONVERT_EXCEPTION (PasswordException);
 		throw *ex;
 	}
 }
diff --git a/src/Main/UserPreferences.cpp b/src/Main/UserPreferences.cpp
old mode 100644
new mode 100755
index b8a4d70..f66d8be
--- a/src/Main/UserPreferences.cpp
+++ b/src/Main/UserPreferences.cpp
@@ -104,6 +104,24 @@ namespace VeraCrypt
 			TC_CONFIG_SET (UseKeyfiles);
 			TC_CONFIG_SET (WipeCacheOnAutoDismount);
 			TC_CONFIG_SET (WipeCacheOnClose);
+			
+			SetValue (configMap[L"DefaultTrueCryptMode"], DefaultMountOptions.TrueCryptMode);
+			
+			wstring defaultPrf;
+			SetValue (configMap[L"DefaultPRF"], defaultPrf);
+			
+			shared_ptr <Pkcs5Kdf> savedKdf;
+			try
+			{
+				if (defaultPrf != L"autodetection")
+					savedKdf = Pkcs5Kdf::GetAlgorithm (defaultPrf, DefaultMountOptions.TrueCryptMode);
+			}
+			catch (ParameterIncorrect&)
+			{
+			}
+			
+			DefaultMountOptions.Kdf = savedKdf;
+			DefaultMountOptions.ProtectionKdf = savedKdf;				
 		}
 
 		// Default keyfiles
@@ -200,6 +218,13 @@ namespace VeraCrypt
 		TC_CONFIG_ADD (UseKeyfiles);
 		TC_CONFIG_ADD (WipeCacheOnAutoDismount);
 		TC_CONFIG_ADD (WipeCacheOnClose);
+		
+		formatter.AddEntry (L"DefaultTrueCryptMode", DefaultMountOptions.TrueCryptMode);	
+			
+		wstring defaultPrf = L"autodetection";
+		if (DefaultMountOptions.Kdf)
+			defaultPrf = DefaultMountOptions.Kdf->GetName ();		
+		formatter.AddEntry (L"DefaultPRF", defaultPrf);
 
 		XmlWriter writer (Application::GetConfigFilePath (GetPreferencesFileName(), true));
 		writer.WriteNode (formatter.XmlConfig);
diff --git a/src/Mount/MainCom.cpp b/src/Mount/MainCom.cpp
index b2dfe89..5a43d36 100644
--- a/src/Mount/MainCom.cpp
+++ b/src/Mount/MainCom.cpp
@@ -255,7 +255,17 @@ extern "C" int UacBackupVolumeHeader (HWND hwndDlg, BOOL bRequireConfirmation, c
 	CoInitialize (NULL);
 
 	if (ComGetInstance (hwndDlg, &tc))
-		r = tc->BackupVolumeHeader ((LONG_PTR) hwndDlg, bRequireConfirmation, CComBSTR (lpszVolume));
+	{
+		CComBSTR volumeBstr;
+		BSTR bstr = A2WBSTR(lpszVolume);
+		if (bstr)
+		{
+			volumeBstr.Attach (bstr);
+			r = tc->BackupVolumeHeader ((LONG_PTR) hwndDlg, bRequireConfirmation, volumeBstr);
+		}
+		else
+			r = ERR_OUTOFMEMORY;
+	}
 	else
 		r = -1;
 
@@ -273,7 +283,17 @@ extern "C" int UacRestoreVolumeHeader (HWND hwndDlg, char *lpszVolume)
 	CoInitialize (NULL);
 
 	if (ComGetInstance (hwndDlg, &tc))
-		r = tc->RestoreVolumeHeader ((LONG_PTR) hwndDlg, CComBSTR (lpszVolume));
+	{
+		CComBSTR volumeBstr;
+		BSTR bstr = A2WBSTR(lpszVolume);
+		if (bstr)
+		{
+			volumeBstr.Attach (bstr);
+			r = tc->RestoreVolumeHeader ((LONG_PTR) hwndDlg, volumeBstr);
+		}
+		else
+			r = ERR_OUTOFMEMORY;
+	}
 	else
 		r = -1;
 
@@ -291,7 +311,16 @@ extern "C" int UacChangePwd (char *lpszVolume, Password *oldPassword, int old_pk
 	if (ComGetInstance (hwndDlg, &tc))
 	{
 		WaitCursor ();
-		r = tc->ChangePasswordEx2 (CComBSTR (lpszVolume), oldPassword, old_pkcs5, truecryptMode, newPassword, pkcs5, wipePassCount, (LONG_PTR) hwndDlg);
+		CComBSTR volumeBstr;
+		BSTR bstr = A2WBSTR(lpszVolume);
+		if (bstr)
+		{
+			volumeBstr.Attach (bstr);
+
+			r = tc->ChangePasswordEx2 (volumeBstr, oldPassword, old_pkcs5, truecryptMode, newPassword, pkcs5, wipePassCount, (LONG_PTR) hwndDlg);
+		}
+		else
+			r = ERR_OUTOFMEMORY;
 		NormalCursor ();
 	}
 	else
diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c
index f9692c1..fad9d4e 100644
--- a/src/Mount/Mount.c
+++ b/src/Mount/Mount.c
@@ -82,6 +82,7 @@ char szDriveLetter[3];				/* Drive Letter to mount */
 char commandLineDrive = 0;
 BOOL bCacheInDriver = FALSE;		/* Cache any passwords we see */
 BOOL bCacheInDriverDefault = FALSE;
+BOOL bCacheDuringMultipleMount = FALSE;
 BOOL bHistoryCmdLine = FALSE;		/* History control is always disabled */
 BOOL bUseDifferentTrayIconIfVolMounted = TRUE;
 BOOL bCloseDismountedWindows=TRUE;	/* Close all open explorer windows of dismounted volume */
@@ -124,8 +125,10 @@ Password VolumePassword;			/* Password used for mounting volumes */
 Password CmdVolumePassword;			/* Password passed from command line */
 int VolumePkcs5 = 0;
 int CmdVolumePkcs5 = 0;
+int DefaultVolumePkcs5 = 0;
 BOOL VolumeTrueCryptMode = FALSE;
 BOOL CmdVolumeTrueCryptMode = FALSE;
+BOOL DefaultVolumeTrueCryptMode = FALSE;
 BOOL CmdVolumePasswordValid = FALSE;
 MountOptions CmdMountOptions;
 BOOL CmdMountOptionsValid = FALSE;
@@ -476,6 +479,7 @@ void LoadSettings (HWND hwndDlg)
 	bHistory =						ConfigReadInt ("SaveVolumeHistory", FALSE);
 
 	bCacheInDriverDefault = bCacheInDriver = ConfigReadInt ("CachePasswords", FALSE);
+	bCacheDuringMultipleMount =	ConfigReadInt ("CachePasswordDuringMultipleMount", FALSE);
 	bWipeCacheOnExit =				ConfigReadInt ("WipePasswordCacheOnExit", FALSE);
 	bWipeCacheOnAutoDismount =		ConfigReadInt ("WipeCacheOnAutoDismount", TRUE);
 
@@ -551,6 +555,15 @@ void LoadSettings (HWND hwndDlg)
 		if (CmdLineVolumeSpecified)
 			SetWindowText (GetDlgItem (hwndDlg, IDC_VOLUME), szFileName);
 	}
+
+	// Mount Options
+	DefaultVolumePkcs5 = ConfigReadInt ("DefaultPRF", 0);
+	DefaultVolumeTrueCryptMode = ConfigReadInt ("DefaultTrueCryptMode", FALSE);
+
+	if (DefaultVolumePkcs5 < 0 || DefaultVolumePkcs5 > LAST_PRF_ID)
+		DefaultVolumePkcs5 = 0;
+	if (DefaultVolumeTrueCryptMode != TRUE && DefaultVolumeTrueCryptMode != FALSE)
+		DefaultVolumeTrueCryptMode = FALSE;
 }
 
 void SaveSettings (HWND hwndDlg)
@@ -568,6 +581,7 @@ void SaveSettings (HWND hwndDlg)
 	ConfigWriteInt ("SaveVolumeHistory",				!IsButtonChecked (GetDlgItem (hwndDlg, IDC_NO_HISTORY)));
 
 	ConfigWriteInt ("CachePasswords",					bCacheInDriverDefault);
+	ConfigWriteInt ("CachePasswordDuringMultipleMount",	bCacheDuringMultipleMount);
 	ConfigWriteInt ("WipePasswordCacheOnExit",			bWipeCacheOnExit);
 	ConfigWriteInt ("WipeCacheOnAutoDismount",			bWipeCacheOnAutoDismount);
 
@@ -634,6 +648,10 @@ void SaveSettings (HWND hwndDlg)
 	// PKCS#11 Library Path
 	ConfigWriteString ("SecurityTokenLibrary", SecurityTokenLibraryPath[0] ? SecurityTokenLibraryPath : "");
 
+	// Mount Options
+	ConfigWriteInt ("DefaultPRF", DefaultVolumePkcs5);
+	ConfigWriteInt ("DefaultTrueCryptMode", DefaultVolumeTrueCryptMode);
+
 	ConfigWriteEnd (hwndDlg);
 
 	// History
@@ -719,8 +737,11 @@ BOOL WholeSysDriveEncryption (BOOL bSilent)
 	{
 		BootEncStatus = BootEncObj->GetStatus();
 
-		return (BootEncStatus.ConfiguredEncryptedAreaStart == TC_BOOT_LOADER_AREA_SIZE
-			&& BootEncStatus.ConfiguredEncryptedAreaEnd >= BootEncStatus.BootDriveLength.QuadPart - 1);
+		if (BootEncStatus.BootDriveLength.QuadPart < 1) // paranoid check
+			return FALSE;
+		else
+			return (BootEncStatus.ConfiguredEncryptedAreaStart == TC_BOOT_LOADER_AREA_SIZE
+				&& BootEncStatus.ConfiguredEncryptedAreaEnd >= BootEncStatus.BootDriveLength.QuadPart - 1);
 	}
 	catch (Exception &e)
 	{
@@ -742,9 +763,16 @@ unsigned __int64 GetSysEncDeviceSize (BOOL bSilent)
 	{
 		if (!bSilent)
 			e.Show (MainDlg);
+		return 1;
 	}
 
-	return (BootEncStatus.ConfiguredEncryptedAreaEnd - BootEncStatus.ConfiguredEncryptedAreaStart + 1);
+	if (	BootEncStatus.ConfiguredEncryptedAreaEnd < 0
+		||	BootEncStatus.ConfiguredEncryptedAreaStart < 0
+		||	BootEncStatus.ConfiguredEncryptedAreaEnd < BootEncStatus.ConfiguredEncryptedAreaStart
+		)
+		return 1; // we return 1 to avoid devision by zero
+	else
+		return ((unsigned __int64)(BootEncStatus.ConfiguredEncryptedAreaEnd - BootEncStatus.ConfiguredEncryptedAreaStart)) + 1;
 }
 
 // Returns the current size of the encrypted area of the system drive/partition in bytes
@@ -758,9 +786,16 @@ unsigned __int64 GetSysEncDeviceEncryptedPartSize (BOOL bSilent)
 	{
 		if (!bSilent)
 			e.Show (MainDlg);
+		return 0;
 	}
 
-	return (BootEncStatus.EncryptedAreaEnd - BootEncStatus.EncryptedAreaStart + 1);
+	if (	BootEncStatus.EncryptedAreaEnd < 0 
+		|| BootEncStatus.EncryptedAreaStart < 0
+		|| BootEncStatus.EncryptedAreaEnd < BootEncStatus.EncryptedAreaStart
+		)
+		return 0;
+	else
+		return ((unsigned __int64)(BootEncStatus.EncryptedAreaEnd - BootEncStatus.EncryptedAreaStart)) + 1;
 }
 
 
@@ -1038,6 +1073,28 @@ static void LaunchVolCreationWizard (HWND hwndDlg, const char *arg)
 	}
 }
 
+static void LaunchVolExpander (HWND hwndDlg)
+{
+	char t[TC_MAX_PATH] = {'"',0};
+	char *tmp;
+
+	GetModuleFileName (NULL, t+1, sizeof(t)-1);
+
+	tmp = strrchr (t, '\\');
+	if (tmp)
+	{
+		*tmp = 0;
+		StringCbCatA (t, sizeof(t), "\\VeraCryptExpander.exe\"");
+
+		if (!FileExists(t))
+			Error ("VOL_EXPANDER_NOT_FOUND", hwndDlg);	// Display a user-friendly error message and advise what to do
+		else if (((int)ShellExecuteA (NULL, (!IsAdmin() && IsUacSupported()) ? "runas" : "open", t, NULL, NULL, SW_SHOW)) <= 32)
+		{
+			handleWin32Error (hwndDlg);
+		}
+	}
+}
+
 
 // Fills drive list
 // drive>0 = update only the corresponding drive subitems
@@ -2078,7 +2135,7 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
 	{
 	case WM_INITDIALOG:
 		{
-			int i, nIndex;
+			int i, nIndex, defaultPrfIndex = 0;
 			szXPwd = ((PasswordDlgParam *) lParam) -> password;
 			pkcs5 = ((PasswordDlgParam *) lParam) -> pkcs5;
 			truecryptMode = ((PasswordDlgParam *) lParam) -> truecryptMode;
@@ -2120,10 +2177,12 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
 			{
 				nIndex = SendMessage (hComboBox, CB_ADDSTRING, 0, (LPARAM) get_pkcs5_prf_name(i));
 				SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) i);
+				if (*pkcs5 && (*pkcs5 == i))
+					defaultPrfIndex = nIndex;
 			}
 
-			/* make autodetection the default */
-			SendMessage (hComboBox, CB_SETCURSEL, 0, 0);
+			/* make autodetection the default unless a specific PRF was specified in the command line */
+			SendMessage (hComboBox, CB_SETCURSEL, defaultPrfIndex, 0);
 
 			SendMessage (GetDlgItem (hwndDlg, IDC_PASSWORD), EM_LIMITTEXT, MAX_PASSWORD, 0);
 			SendMessage (GetDlgItem (hwndDlg, IDC_CACHE), BM_SETCHECK, bCacheInDriver ? BST_CHECKED:BST_UNCHECKED, 0);
@@ -2145,6 +2204,11 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
 				SetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE, FALSE);
 				EnableWindow (GetDlgItem (hwndDlg, IDC_TRUECRYPT_MODE), FALSE);
 			}
+			else if (*truecryptMode)
+			{
+				/* Check TrueCryptMode if it is enabled on the command line */
+				SetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE, TRUE);
+			}
 
 			if (!SetForegroundWindow (hwndDlg) && (FavoriteMountOnArrivalInProgress || LogOn))
 			{
@@ -2166,15 +2230,11 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
 
 	case TC_APPMSG_PREBOOT_PASSWORD_MODE:
 		{
-			/* No support for mounting TrueCrypt system partition */				
-			SetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE, FALSE);
-			EnableWindow (GetDlgItem (hwndDlg, IDC_TRUECRYPT_MODE), FALSE);
-
 			/* Repopulate the PRF algorithms list with algorithms that support system encryption */
 			HWND hComboBox = GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID);
 			SendMessage (hComboBox, CB_RESETCONTENT, 0, 0);
 
-			int i, nIndex = SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
+			int i, defaultPrfIndex = 0, nIndex = SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
 			SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) 0);
 
 			for (i = FIRST_PRF_ID; i <= LAST_PRF_ID; i++)
@@ -2183,11 +2243,13 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
 				{
 					nIndex = SendMessage (hComboBox, CB_ADDSTRING, 0, (LPARAM) get_pkcs5_prf_name(i));
 					SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) i);
+					if (*pkcs5 && (*pkcs5 == i))
+						defaultPrfIndex = nIndex;
 				}
 			}
 
-			/* make autodetection the default */
-			SendMessage (hComboBox, CB_SETCURSEL, 0, 0);
+			/* make autodetection the default unless a specific PRF was specified in the command line */
+			SendMessage (hComboBox, CB_SETCURSEL, defaultPrfIndex, 0);
 
 			ToBootPwdField (hwndDlg, IDC_PASSWORD);
 
@@ -2270,6 +2332,9 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
 
 		if (lw == IDC_MOUNT_OPTIONS)
 		{
+			/* Use default PRF specified by the user if any */
+			if (mountOptions.ProtectedHidVolPkcs5Prf == 0)
+				mountOptions.ProtectedHidVolPkcs5Prf = *pkcs5;
 			DialogBoxParamW (hInst, 
 				MAKEINTRESOURCEW (IDD_MOUNT_OPTIONS), hwndDlg,
 				(DLGPROC) MountOptionsDlgProc, (LPARAM) &mountOptions);
@@ -2475,6 +2540,9 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
 			
 			SendMessage (GetDlgItem (hwndDlg, IDC_PRESERVE_TIMESTAMPS), BM_SETCHECK, 
 						defaultMountOptions.PreserveTimestamp ? BST_CHECKED:BST_UNCHECKED, 0);
+			
+			SendMessage (GetDlgItem (hwndDlg, IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT), BM_SETCHECK, 
+						bCacheDuringMultipleMount ? BST_CHECKED:BST_UNCHECKED, 0);
 
 			SendMessage (GetDlgItem (hwndDlg, IDC_PREF_WIPE_CACHE_ON_EXIT), BM_SETCHECK, 
 						bWipeCacheOnExit ? BST_CHECKED:BST_UNCHECKED, 0);
@@ -2583,6 +2651,7 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
 			bExplore						= IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_OPEN_EXPLORER));	 
 			bUseDifferentTrayIconIfVolMounted = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED));	 
 			bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PRESERVE_TIMESTAMPS));	 
+			bCacheDuringMultipleMount	= IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT));
 			bWipeCacheOnExit				= IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_WIPE_CACHE_ON_EXIT));
 			bWipeCacheOnAutoDismount		= IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT));
 			bCacheInDriverDefault = bCacheInDriver = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_CACHE_PASSWORDS));	 
@@ -2622,6 +2691,7 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
 				AppendMenuW (popup, MF_STRING, IDM_SYSENC_SETTINGS, GetString ("IDM_SYSENC_SETTINGS"));
 				AppendMenuW (popup, MF_STRING, IDM_SYS_FAVORITES_SETTINGS, GetString ("IDM_SYS_FAVORITES_SETTINGS"));
 				AppendMenuW (popup, MF_STRING, IDM_DEFAULT_KEYFILES, GetString ("IDM_DEFAULT_KEYFILES"));
+				AppendMenuW (popup, MF_STRING, IDM_DEFAULT_MOUNT_PARAMETERS, GetString ("IDM_DEFAULT_MOUNT_PARAMETERS"));
 				AppendMenuW (popup, MF_STRING, IDM_TOKEN_PREFERENCES, GetString ("IDM_TOKEN_PREFERENCES"));
 
 				RECT rect;
@@ -2880,14 +2950,19 @@ int GetCipherBlockSizeByDriveNo (int nDosDriveNo)
 
 	if (DeviceIoControl (hDriver, TC_IOCTL_GET_VOLUME_PROPERTIES, &prop, sizeof (prop), &prop, sizeof (prop), &dwResult, NULL))
 	{
-		for (cipherID = EAGetLastCipher (prop.ea);
-			cipherID != 0;
-			cipherID = EAGetPreviousCipher (prop.ea, cipherID))
+		if (	(prop.driveNo == nDosDriveNo)
+			&&	(prop.ea >= EAGetFirst() && prop.ea <= EAGetCount())
+			)
 		{
-			if (blockSize > 0)
-				blockSize = min (blockSize, CipherGetBlockSize (cipherID) * 8);
-			else
-				blockSize = CipherGetBlockSize (cipherID) * 8;
+			for (cipherID = EAGetLastCipher (prop.ea);
+				cipherID != 0;
+				cipherID = EAGetPreviousCipher (prop.ea, cipherID))
+			{
+				if (blockSize > 0)
+					blockSize = min (blockSize, CipherGetBlockSize (cipherID) * 8);
+				else
+					blockSize = CipherGetBlockSize (cipherID) * 8;
+			}
 		}
 	}
 
@@ -2906,7 +2981,13 @@ int GetModeOfOperationByDriveNo (int nDosDriveNo)
 
 	if (DeviceIoControl (hDriver, TC_IOCTL_GET_VOLUME_PROPERTIES, &prop, sizeof (prop), &prop, sizeof (prop), &dwResult, NULL))
 	{
-		return prop.mode;
+		if (	(prop.driveNo == nDosDriveNo)
+			&&	(prop.ea >= EAGetFirst() && prop.ea <= EAGetCount())
+			&&	(prop.mode >= FIRST_MODE_OF_OPERATION_ID && prop.mode < MODE_ENUM_END_ID)
+			)
+		{
+			return prop.mode;
+		}
 	}
 
 	return 0;
@@ -3354,7 +3435,7 @@ BOOL CALLBACK TravelerDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
 
 			GetDlgItemText (hwndDlg, IDC_DIRECTORY, dstDir, sizeof dstDir);
 			volName[0] = 0;
-			GetDlgItemText (hwndDlg, IDC_VOLUME_NAME, volName + 1, sizeof volName);
+			GetDlgItemText (hwndDlg, IDC_VOLUME_NAME, volName + 1, (sizeof volName) - 1);
 			
 			drive = SendDlgItemMessage (hwndDlg, IDC_DRIVELIST, CB_GETCURSEL, 0, 0);
 			drive = SendDlgItemMessage (hwndDlg, IDC_DRIVELIST, CB_GETITEMDATA, drive, 0);
@@ -3647,7 +3728,16 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, char *szFileName)
 {
 	BOOL status = FALSE;
 	char fileName[MAX_PATH];
-	int mounted = 0;
+	int mounted = 0, EffectiveVolumePkcs5 = CmdVolumePkcs5;
+	BOOL EffectiveVolumeTrueCryptMode = CmdVolumeTrueCryptMode;
+
+	/* Priority is given to command line parameters 
+	 * Default values used only when nothing specified in command line
+	 */
+	if (EffectiveVolumePkcs5 == 0)
+		EffectiveVolumePkcs5 = DefaultVolumePkcs5;
+	if (!EffectiveVolumeTrueCryptMode)
+		EffectiveVolumeTrueCryptMode = DefaultVolumeTrueCryptMode;
 
 	bPrebootPasswordDlgMode = mountOptions.PartitionInInactiveSysEncScope;
 
@@ -3694,7 +3784,10 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, char *szFileName)
 	// First try cached passwords and if they fail ask user for a new one
 	WaitCursor ();
 
-	mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, CmdVolumePkcs5, CmdVolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
+	// try TrueCrypt mode first since it is quick
+	mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, 0, TRUE, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
+	if (!mounted)
+		mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, NULL, 0, FALSE, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
 	
 	// If keyfiles are enabled, test empty password first
 	if (!mounted && KeyFilesEnable && FirstKeyFile)
@@ -3703,19 +3796,22 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, char *szFileName)
 		emptyPassword.Length = 0;
 
 		KeyFilesApply (hwndDlg, &emptyPassword, FirstKeyFile);
-		mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, CmdVolumePkcs5, CmdVolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
-		if (mounted)
-		{
-			VolumePkcs5 = CmdVolumePkcs5;
-			VolumeTrueCryptMode = CmdVolumeTrueCryptMode;
-		}
+		// try TrueCrypt mode first since it is quick
+		mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, 0, TRUE, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
+		if (!mounted)
+			mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &emptyPassword, 0, FALSE, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
 		
 		burn (&emptyPassword, sizeof (emptyPassword));
 	}
 
 	// Test password and/or keyfiles used for the previous volume
-	if (!mounted && MultipleMountOperationInProgress && VolumePassword.Length != 0)
-		mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, VolumePkcs5, VolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
+	if (!mounted && bCacheDuringMultipleMount && MultipleMountOperationInProgress && VolumePassword.Length != 0)
+	{
+		// try TrueCrypt mode first as it is quick
+		mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, 0, TRUE, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
+		if (!mounted)
+			mounted = MountVolume (hwndDlg, nDosDriveNo, szFileName, &VolumePassword, 0, FALSE, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
+	}
 
 	NormalCursor ();
 
@@ -3732,13 +3828,13 @@ static BOOL Mount (HWND hwndDlg, int nDosDriveNo, char *szFileName)
 		if (CmdVolumePassword.Length > 0)
 		{
 			VolumePassword = CmdVolumePassword;
-			VolumePkcs5 = CmdVolumePkcs5;
-			VolumeTrueCryptMode = CmdVolumeTrueCryptMode;
+			VolumePkcs5 = EffectiveVolumePkcs5;
+			VolumeTrueCryptMode = EffectiveVolumeTrueCryptMode;
 		}
 		else if (!Silent)
 		{
-			int GuiPkcs5 = CmdVolumePkcs5;
-			BOOL GuiTrueCryptMode = CmdVolumeTrueCryptMode;
+			int GuiPkcs5 = EffectiveVolumePkcs5;
+			BOOL GuiTrueCryptMode = EffectiveVolumeTrueCryptMode;
 			StringCbCopyA (PasswordDlgVolume, sizeof(PasswordDlgVolume), szFileName);
 
 			if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiTrueCryptMode, NULL, TRUE))
@@ -3867,9 +3963,9 @@ void __cdecl mountThreadFunction (void *hwndDlgArg)
 static BOOL DismountAll (HWND hwndDlg, BOOL forceUnmount, BOOL interact, int dismountMaxRetries, int dismountAutoRetryDelay)
 {
 	BOOL status = TRUE;
-	MOUNT_LIST_STRUCT mountList;
+	MOUNT_LIST_STRUCT mountList = {0};
 	DWORD dwResult;
-	UNMOUNT_STRUCT unmount;
+	UNMOUNT_STRUCT unmount = {0};
 	BOOL bResult;
 	unsigned __int32 prevMountedDrives = 0;
 	int i;
@@ -3906,6 +4002,17 @@ retry:
 		bResult = DeviceIoControl (hDriver, TC_IOCTL_DISMOUNT_ALL_VOLUMES, &unmount,
 			sizeof (unmount), &unmount, sizeof (unmount), &dwResult, NULL);
 
+		if (	unmount.nDosDriveNo < 0 || unmount.nDosDriveNo > 25 
+				|| (unmount.ignoreOpenFiles != TRUE && unmount.ignoreOpenFiles != FALSE)
+				||	(unmount.HiddenVolumeProtectionTriggered != TRUE && unmount.HiddenVolumeProtectionTriggered != FALSE)
+				||	(unmount.nReturnCode < 0)
+			)
+		{
+			if (bResult)
+				SetLastError (ERROR_INTERNAL_ERROR);
+			bResult = FALSE;			
+		}
+
 		if (bResult == FALSE)
 		{
 			NormalCursor();
@@ -3996,6 +4103,16 @@ static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
 	BOOL shared = FALSE, status = FALSE, bHeaderBakRetry = FALSE;
 	int mountedVolCount = 0;
 	vector <HostDevice> devices;
+	int EffectiveVolumePkcs5 = CmdVolumePkcs5;
+	BOOL EffectiveVolumeTrueCryptMode = CmdVolumeTrueCryptMode;
+
+	/* Priority is given to command line parameters 
+	 * Default values used only when nothing specified in command line
+	 */
+	if (EffectiveVolumePkcs5 == 0)
+		EffectiveVolumePkcs5 = DefaultVolumePkcs5;
+	if (!EffectiveVolumeTrueCryptMode)
+		EffectiveVolumeTrueCryptMode = DefaultVolumeTrueCryptMode;
 
 	VolumePassword.Length = 0;
 	mountOptions = defaultMountOptions;
@@ -4014,8 +4131,8 @@ static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
 		{
 			if (!CmdVolumePasswordValid && bPasswordPrompt)
 			{
-				int GuiPkcs5 = CmdVolumePkcs5;
-				BOOL GuiTrueCryptMode = CmdVolumeTrueCryptMode;
+				int GuiPkcs5 = EffectiveVolumePkcs5;
+				BOOL GuiTrueCryptMode = EffectiveVolumeTrueCryptMode;
 				PasswordDlgVolume[0] = '\0';
 				if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiTrueCryptMode, NULL, TRUE))
 					goto ret;
@@ -4031,8 +4148,8 @@ static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
 			{
 				bPasswordPrompt = FALSE;
 				VolumePassword = CmdVolumePassword;
-				VolumePkcs5 = CmdVolumePkcs5;
-				VolumeTrueCryptMode = CmdVolumeTrueCryptMode;
+				VolumePkcs5 = EffectiveVolumePkcs5;
+				VolumeTrueCryptMode = EffectiveVolumeTrueCryptMode;
 			}
 
 			WaitCursor();
@@ -4696,7 +4813,7 @@ static void ResumeInterruptedNonSysInplaceEncProcess (void)
 	LaunchVolCreationWizard (MainDlg, "/zinplace");
 }
 
-static BOOL SelectContainer (HWND hwndDlg)
+BOOL SelectContainer (HWND hwndDlg)
 {
 	if (BrowseFiles (hwndDlg, "OPEN_VOL_TITLE", szFileName, bHistory, FALSE, NULL) == FALSE)
 		return FALSE;
@@ -4707,7 +4824,7 @@ static BOOL SelectContainer (HWND hwndDlg)
 	return TRUE;
 }
 
-static BOOL SelectPartition (HWND hwndDlg)
+BOOL SelectPartition (HWND hwndDlg)
 {
 	int nResult = DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_RAWDEVICES_DLG), hwndDlg,
 		(DLGPROC) RawDevicesDlgProc, (LPARAM) & szFileName[0]);
@@ -5065,64 +5182,81 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
 
 				if (szFileName[0] != 0 && !IsMountedVolume (szFileName))
 				{
-					BOOL mounted;
+					BOOL mounted = FALSE;
+					int EffectiveVolumePkcs5 = CmdVolumePkcs5;
+					BOOL EffectiveVolumeTrueCryptMode = CmdVolumeTrueCryptMode;
 
-					// Cached password
-					mounted = MountVolume (hwndDlg, szDriveLetter[0] - 'A', szFileName, NULL, CmdVolumePkcs5, CmdVolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
-
-					// Command line password or keyfiles
-					if (!mounted && (CmdVolumePassword.Length != 0 || FirstCmdKeyFile))
+					if (!VolumePathExists (szFileName))
 					{
-						BOOL reportBadPasswd = CmdVolumePassword.Length > 0;
-
-						if (FirstCmdKeyFile)
-							KeyFilesApply (hwndDlg, &CmdVolumePassword, FirstCmdKeyFile);
-
-						mounted = MountVolume (hwndDlg, szDriveLetter[0] - 'A',
-							szFileName, &CmdVolumePassword, CmdVolumePkcs5, CmdVolumeTrueCryptMode, bCacheInDriver, bForceMount,
-							&mountOptions, Silent, reportBadPasswd);
-
-						burn (&CmdVolumePassword, sizeof (CmdVolumePassword));
+						handleWin32Error (hwndDlg);
 					}
-
-					if (FirstCmdKeyFile)
+					else
 					{
-						FirstKeyFile = FirstCmdKeyFile;
-						KeyFilesEnable = TRUE;
-					}
+						/* Priority is given to command line parameters 
+						 * Default values used only when nothing specified in command line
+						 */
+						if (EffectiveVolumePkcs5 == 0)
+							EffectiveVolumePkcs5 = DefaultVolumePkcs5;
+						if (!EffectiveVolumeTrueCryptMode)
+							EffectiveVolumeTrueCryptMode = DefaultVolumeTrueCryptMode;
+
+						// Cached password
+						mounted = MountVolume (hwndDlg, szDriveLetter[0] - 'A', szFileName, NULL, EffectiveVolumePkcs5, EffectiveVolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, Silent, FALSE);
+
+						// Command line password or keyfiles
+						if (!mounted && (CmdVolumePassword.Length != 0 || FirstCmdKeyFile))
+						{
+							BOOL reportBadPasswd = CmdVolumePassword.Length > 0;
 
-					// Ask user for password
-					while (!mounted && !Silent)
-					{
-						int GuiPkcs5 = CmdVolumePkcs5;
-						BOOL GuiTrueCryptMode = CmdVolumeTrueCryptMode;
-						VolumePassword.Length = 0;
+							if (FirstCmdKeyFile)
+								KeyFilesApply (hwndDlg, &CmdVolumePassword, FirstCmdKeyFile);
 
-						StringCbCopyA (PasswordDlgVolume, sizeof(PasswordDlgVolume),szFileName);
-						if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiTrueCryptMode, NULL, TRUE))
-							break;
-						else
+							mounted = MountVolume (hwndDlg, szDriveLetter[0] - 'A',
+								szFileName, &CmdVolumePassword, EffectiveVolumePkcs5, EffectiveVolumeTrueCryptMode, bCacheInDriver, bForceMount,
+								&mountOptions, Silent, reportBadPasswd);
+
+							burn (&CmdVolumePassword, sizeof (CmdVolumePassword));
+						}
+
+						if (FirstCmdKeyFile)
 						{
-							VolumePkcs5 = GuiPkcs5;
-							VolumeTrueCryptMode = GuiTrueCryptMode;
-							burn (&GuiPkcs5, sizeof(GuiPkcs5));
-							burn (&GuiTrueCryptMode, sizeof(GuiTrueCryptMode));
+							FirstKeyFile = FirstCmdKeyFile;
+							KeyFilesEnable = TRUE;
 						}
 
-						WaitCursor ();
+						// Ask user for password
+						while (!mounted && !Silent)
+						{
+							int GuiPkcs5 = EffectiveVolumePkcs5;
+							BOOL GuiTrueCryptMode = EffectiveVolumeTrueCryptMode;
+							VolumePassword.Length = 0;
+
+							StringCbCopyA (PasswordDlgVolume, sizeof(PasswordDlgVolume),szFileName);
+							if (!AskVolumePassword (hwndDlg, &VolumePassword, &GuiPkcs5, &GuiTrueCryptMode, NULL, TRUE))
+								break;
+							else
+							{
+								VolumePkcs5 = GuiPkcs5;
+								VolumeTrueCryptMode = GuiTrueCryptMode;
+								burn (&GuiPkcs5, sizeof(GuiPkcs5));
+								burn (&GuiTrueCryptMode, sizeof(GuiTrueCryptMode));
+							}
+
+							WaitCursor ();
 
-						if (KeyFilesEnable && FirstKeyFile)
-							KeyFilesApply (hwndDlg, &VolumePassword, FirstKeyFile);
+							if (KeyFilesEnable && FirstKeyFile)
+								KeyFilesApply (hwndDlg, &VolumePassword, FirstKeyFile);
 
-						mounted = MountVolume (hwndDlg, szDriveLetter[0] - 'A', szFileName, &VolumePassword, VolumePkcs5, VolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, FALSE, TRUE);
+							mounted = MountVolume (hwndDlg, szDriveLetter[0] - 'A', szFileName, &VolumePassword, VolumePkcs5, VolumeTrueCryptMode, bCacheInDriver, bForceMount, &mountOptions, FALSE, TRUE);
 
-						burn (&VolumePassword, sizeof (VolumePassword));
-						burn (&VolumePkcs5, sizeof (VolumePkcs5));
-						burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
-						burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
-						burn (&mountOptions.ProtectedHidVolPkcs5Prf, sizeof (mountOptions.ProtectedHidVolPkcs5Prf));
+							burn (&VolumePassword, sizeof (VolumePassword));
+							burn (&VolumePkcs5, sizeof (VolumePkcs5));
+							burn (&VolumeTrueCryptMode, sizeof (VolumeTrueCryptMode));
+							burn (&mountOptions.ProtectedHidVolPassword, sizeof (mountOptions.ProtectedHidVolPassword));
+							burn (&mountOptions.ProtectedHidVolPkcs5Prf, sizeof (mountOptions.ProtectedHidVolPkcs5Prf));
 
-						NormalCursor ();
+							NormalCursor ();
+						}
 					}
 
 					if (UsePreferences)
@@ -5842,7 +5976,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
 
 					if (IsVolumeDeviceHosted (volp))
 					{
-						OPEN_TEST_STRUCT ots;
+						OPEN_TEST_STRUCT ots = {0};
 
 						if (!OpenDevice (volp, &ots, FALSE))
 						{
@@ -5902,6 +6036,14 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
 
 					if (GetAsyncKeyState (VK_CONTROL) < 0)
 					{
+						/* Priority is given to command line parameters 
+						 * Default values used only when nothing specified in command line
+						 */
+						if (CmdVolumePkcs5 == 0)
+							mountOptions.ProtectedHidVolPkcs5Prf = DefaultVolumePkcs5;
+						else
+							mountOptions.ProtectedHidVolPkcs5Prf = CmdVolumePkcs5;
+
 						if (IDCANCEL == DialogBoxParamW (hInst, 
 							MAKEINTRESOURCEW (IDD_MOUNT_OPTIONS), hwndDlg,
 							(DLGPROC) MountOptionsDlgProc, (LPARAM) &mountOptions))
@@ -6389,6 +6531,12 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
 			return 1;
 		}
 
+		if (lw == IDM_VOLUME_EXPANDER)
+		{
+			LaunchVolExpander (hwndDlg);
+			return 1;
+		}
+
 		if (lw == IDM_ADD_REMOVE_VOL_KEYFILES)
 		{
 			if (!VolumeSelected(hwndDlg))
@@ -6555,6 +6703,12 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
 			return 1;
 		}
 
+		if (lw == IDM_DEFAULT_MOUNT_PARAMETERS)
+		{
+			DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_DEFAULT_MOUNT_PARAMETERS), hwndDlg, (DLGPROC) DefaultMountParametersDlgProc, 0);
+			return 1;
+		}
+
 		if (lw == IDM_ADD_VOLUME_TO_FAVORITES || lw == IDM_ADD_VOLUME_TO_SYSTEM_FAVORITES)
 		{
 			LPARAM selectedDrive = GetSelectedLong (GetDlgItem (hwndDlg, IDC_DRIVELIST));
@@ -7335,7 +7489,7 @@ static BOOL StartSystemFavoritesService ()
 	return result;
 }
 
-
+#ifndef VCEXPANDER
 int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *lpszCommandLine, int nCmdShow)
 {
 	int argc;
@@ -7389,9 +7543,11 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *lpszComm
 	DialogBoxParamW (hInstance, MAKEINTRESOURCEW (IDD_MOUNT_DLG), NULL, (DLGPROC) MainDialogProc,
 			(LPARAM) lpszCommandLine);
 
+	FinalizeApp ();
 	/* Terminate */
 	return 0;
 }
+#endif
 
 
 BOOL TaskBarIconAdd (HWND hwnd) 
@@ -7406,7 +7562,7 @@ BOOL TaskBarIconAdd (HWND hwnd)
 	TaskBarIconMutex = CreateMutex (NULL, TRUE, "VeraCryptTaskBarIcon");
 	if (TaskBarIconMutex == NULL || GetLastError () == ERROR_ALREADY_EXISTS)
 	{
-		if (TaskBarIconMutex)
+		if (TaskBarIconMutex != NULL)
 		{
 			CloseHandle(TaskBarIconMutex);
 			TaskBarIconMutex = NULL;
@@ -7510,7 +7666,15 @@ void DismountIdleVolumes ()
 			bResult = DeviceIoControl (hDriver, TC_IOCTL_GET_VOLUME_PROPERTIES, &prop,
 				sizeof (prop), &prop, sizeof (prop), &dwResult, NULL);
 
-			if (bResult)
+			if (	bResult 
+				&&	(	(prop.driveNo == i) && prop.uniqueId >= 0 
+					&& prop.ea >= EAGetFirst() && prop.ea <= EAGetCount()
+					&& prop.mode >= FIRST_MODE_OF_OPERATION_ID && prop.mode <= LAST_MODE_OF_OPERATION 
+					&& prop.pkcs5 >= FIRST_PRF_ID && prop.pkcs5 <= LAST_PRF_ID 
+					&& prop.pkcs5Iterations > 0
+					&& prop.hiddenVolProtection >= 0 && prop.volFormatVersion >= 0
+					)
+				)
 			{
 				if (LastRead[i] == prop.totalBytesRead 
 					&& LastWritten[i] == prop.totalBytesWritten
@@ -7632,6 +7796,13 @@ BOOL MountFavoriteVolumes (BOOL systemFavorites, BOOL logOnMount, BOOL hotKeyMou
 				&& !favoriteVolumeToMount.Path.empty()
 				&& GetAsyncKeyState (VK_CONTROL) < 0)
 			{
+				/* Priority is given to command line parameters 
+				 * Default values used only when nothing specified in command line
+				 */
+				if (CmdVolumePkcs5 == 0)
+					mountOptions.ProtectedHidVolPkcs5Prf = DefaultVolumePkcs5;
+				else
+					mountOptions.ProtectedHidVolPkcs5Prf = CmdVolumePkcs5;
 				if (DialogBoxParamW (hInst, MAKEINTRESOURCEW (IDD_MOUNT_OPTIONS), MainDlg, MountOptionsDlgProc, (LPARAM) &mountOptions) == IDCANCEL)
 				{
 					status = FALSE;
@@ -8028,7 +8199,10 @@ noHidden:
 
 	if (Randinit() != ERR_SUCCESS)
 	{
-		nStatus = ERR_PARAMETER_INCORRECT; 
+		if (CryptoAPILastError == ERROR_SUCCESS)
+			nStatus = ERR_RAND_INIT_FAILED;
+		else
+			nStatus = ERR_CAPI_INIT_FAILED;
 		goto error;
 	}
 
@@ -8863,6 +9037,80 @@ static BOOL CALLBACK SecurityTokenPreferencesDlgProc (HWND hwndDlg, UINT msg, WP
 	return 0;
 }
 
+static BOOL CALLBACK DefaultMountParametersDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	WORD lw = LOWORD (wParam);
+
+	switch (msg)
+	{
+	case WM_INITDIALOG:
+		{
+			LocalizeDialog (hwndDlg, "IDD_DEFAULT_MOUNT_PARAMETERS");
+
+			SendMessage (GetDlgItem (hwndDlg, IDC_TRUECRYPT_MODE), BM_SETCHECK, 
+				DefaultVolumeTrueCryptMode ? BST_CHECKED:BST_UNCHECKED, 0);
+
+			/* Populate the PRF algorithms list */
+			int i, nIndex, defaultPrfIndex = 0;
+			HWND hComboBox = GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID);
+			SendMessage (hComboBox, CB_RESETCONTENT, 0, 0);
+
+			nIndex = SendMessageW (hComboBox, CB_ADDSTRING, 0, (LPARAM) GetString ("AUTODETECTION"));
+			SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) 0);
+
+			for (i = FIRST_PRF_ID; i <= LAST_PRF_ID; i++)
+			{
+				nIndex = SendMessage (hComboBox, CB_ADDSTRING, 0, (LPARAM) get_pkcs5_prf_name(i));
+				SendMessage (hComboBox, CB_SETITEMDATA, nIndex, (LPARAM) i);
+				if (DefaultVolumePkcs5 && (DefaultVolumePkcs5 == i))
+					defaultPrfIndex = nIndex;
+			}
+
+			/* make autodetection the default unless a specific PRF was specified in the command line */
+			SendMessage (hComboBox, CB_SETCURSEL, defaultPrfIndex, 0);
+
+			return 0;
+		}
+	
+	case WM_COMMAND:
+
+		switch (lw)
+		{
+		case IDCANCEL:
+			EndDialog (hwndDlg, lw);
+			return 1;
+
+		case IDOK:
+			{
+				int pkcs5 = (int) SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETITEMDATA, SendMessage (GetDlgItem (hwndDlg, IDC_PKCS5_PRF_ID), CB_GETCURSEL, 0, 0), 0);
+				BOOL truecryptMode = GetCheckBox (hwndDlg, IDC_TRUECRYPT_MODE);
+				/* SHA-256 is not supported by TrueCrypt */
+				if (	(truecryptMode) 
+					&& (pkcs5 == SHA256)
+					)
+				{
+					Error ("ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE", hwndDlg);
+				}
+				else
+				{
+					WaitCursor ();
+					DefaultVolumeTrueCryptMode = truecryptMode;
+					DefaultVolumePkcs5 = pkcs5;
+
+					SaveSettings (hwndDlg);
+					
+					NormalCursor ();
+					EndDialog (hwndDlg, lw);
+				}				
+				return 1;
+			}
+
+		}
+		return 0;
+	}
+
+	return 0;
+}
 
 void SecurityTokenPreferencesDialog (HWND hwndDlg)
 {
@@ -9007,6 +9255,13 @@ void MountSelectedVolume (HWND hwndDlg, BOOL mountWithOptions)
 
 		if (mountWithOptions || GetAsyncKeyState (VK_CONTROL) < 0)
 		{
+			/* Priority is given to command line parameters 
+			 * Default values used only when nothing specified in command line
+			 */
+			if (CmdVolumePkcs5 == 0)
+				mountOptions.ProtectedHidVolPkcs5Prf = DefaultVolumePkcs5;
+			else
+				mountOptions.ProtectedHidVolPkcs5Prf = CmdVolumePkcs5;
 			if (IDCANCEL == DialogBoxParamW (hInst, 
 				MAKEINTRESOURCEW (IDD_MOUNT_OPTIONS), hwndDlg,
 				(DLGPROC) MountOptionsDlgProc, (LPARAM) &mountOptions))
@@ -9139,9 +9394,9 @@ void AnalyzeKernelMiniDump (HWND hwndDlg)
 			return;
 
 		if (Is64BitOs())
-			sDbgCmd = "msiexec.exe /qb /i http://www.idrix.fr/Root/MSDebug/dbg_amd64_6.11.1.404.msi";
+			sDbgCmd = "msiexec.exe /qb /i https://www.idrix.fr/Root/MSDebug/dbg_amd64_6.11.1.404.msi";
 		else
-			sDbgCmd = "msiexec.exe /qb /i http://www.idrix.fr/Root/MSDebug/dbg_x86_6.11.1.404.msi";
+			sDbgCmd = "msiexec.exe /qb /i https://www.idrix.fr/Root/MSDebug/dbg_x86_6.11.1.404.msi";
 		
 		if (!CreateProcess (NULL, (LPSTR) sDbgCmd.c_str(),
 			NULL, NULL, FALSE, 0, NULL, NULL, &startupInfo, &procInfo))
@@ -9247,14 +9502,31 @@ void AnalyzeKernelMiniDump (HWND hwndDlg)
 	CloseHandle (hChildStdoutWrite);
 
 	string output;
+	BOOL bIsValidResponse = TRUE;
 
 	while (TRUE) 
 	{ 
-		DWORD bytesReceived;
-		char pipeBuffer [4096];
+		DWORD bytesReceived = 0, i;
+		char pipeBuffer [4096] = {0};
+		
+		unsigned char uc;
 
 		if (!ReadFile (hChildStdoutRead, pipeBuffer, sizeof (pipeBuffer), &bytesReceived, NULL)) 
-			break; 
+			break;
+
+		/* check if the buffer contains printable characters only*/
+		for (i = 0; i < bytesReceived; i++)
+		{
+			uc =  (unsigned char) pipeBuffer [i];
+			if ( uc >= 0x7f || uc < 0x20) // A non-ASCII or non-printable character?
+			{
+				bIsValidResponse = FALSE;
+				break;
+			}
+		}
+
+		if (!bIsValidResponse)
+			break;
 
 		output.insert (output.size(), pipeBuffer, bytesReceived);
 	}
@@ -9263,6 +9535,12 @@ void AnalyzeKernelMiniDump (HWND hwndDlg)
 
 	NormalCursor();
 
+	if (!bIsValidResponse)
+	{
+		Error ("ERR_PARAMETER_INCORRECT", hwndDlg);
+		return;
+	}
+
 	bool otherDriver = (StringToUpperCase (output).find (StringToUpperCase (TC_APP_NAME)) == string::npos);
 
 	size_t p, p2;
diff --git a/src/Mount/Mount.h b/src/Mount/Mount.h
index 00552da..6c3cf01 100644
--- a/src/Mount/Mount.h
+++ b/src/Mount/Mount.h
@@ -110,6 +110,7 @@ uint32 ReadDriverConfigurationFlags ();
 void AnalyzeKernelMiniDump (HWND hwndDlg);
 void HookMouseWheel (HWND hwndDlg, UINT ctrlId);
 static BOOL HandleDriveListMouseWheelEvent (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL bListMustBePointed);
+static BOOL CALLBACK DefaultMountParametersDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
 
 #ifdef __cplusplus
 }
diff --git a/src/Mount/Mount.rc b/src/Mount/Mount.rc
index 7a498d7..02adfc3 100644
--- a/src/Mount/Mount.rc
+++ b/src/Mount/Mount.rc
@@ -41,7 +41,7 @@ IDR_MOUNT_TLB           TYPELIB                 "Mount.tlb"
 // Dialog
 //
 
-IDD_PREFERENCES_DLG DIALOGEX 0, 0, 336, 282
+IDD_PREFERENCES_DLG DIALOGEX 0, 0, 336, 291
 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "VeraCrypt - Preferences"
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
@@ -78,20 +78,22 @@ BEGIN
     CONTROL         "Wipe cached passwords on exit",IDC_PREF_WIPE_CACHE_ON_EXIT,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,227,165,11
     CONTROL         "Wipe cached passwords on auto-dismount",IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,239,296,11
-    PUSHBUTTON      "More Settings...",IDC_MORE_SETTINGS,5,262,85,14
-    DEFPUSHBUTTON   "OK",IDOK,225,262,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,281,262,50,14
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,254,296,11
+    PUSHBUTTON      "More Settings...",IDC_MORE_SETTINGS,5,275,85,14
+    DEFPUSHBUTTON   "OK",IDOK,225,275,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,281,275,50,14
     GROUPBOX        "Windows",IDT_WINDOWS_RELATED_SETTING,4,160,328,52
     GROUPBOX        "Default Mount Options",IDT_DEFAULT_MOUNT_OPTIONS,4,3,328,26
     GROUPBOX        "VeraCrypt Background Task",IDT_TASKBAR_ICON,4,33,328,26
     GROUPBOX        "Auto-Dismount",IDT_AUTO_DISMOUNT,4,94,328,62
     LTEXT           "minutes",IDT_MINUTES,289,129,39,10
     LTEXT           "Dismount all when:",IDT_AUTO_DISMOUNT_ON,9,110,71,17
-    GROUPBOX        "Password Cache",IDT_PW_CACHE_OPTIONS,4,216,328,39
+    GROUPBOX        "Password Cache",IDT_PW_CACHE_OPTIONS,4,216,328,54
     GROUPBOX        "Actions to perform upon logon to Windows",IDT_LOGON,4,63,328,28
     CONTROL         "User session locked",IDC_PREF_DISMOUNT_SESSION_LOCKED,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,197,105,130,11
+    CONTROL         "Temporary Cache password during ""Mount Favorite Volumes"" operations",IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,241,294,11
 END
 
 IDD_VOLUME_PROPERTIES DIALOGEX 60, 30, 284, 224
@@ -331,6 +333,18 @@ BEGIN
     GROUPBOX        "Global Settings",IDC_FAV_VOL_OPTIONS_GLOBAL_SETTINGS_BOX,7,202,366,49
 END
 
+IDD_DEFAULT_MOUNT_PARAMETERS DIALOGEX 0, 0, 167, 65
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "VeraCrypt - Mount Parameters"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    DEFPUSHBUTTON   "OK",IDOK,57,44,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,111,44,50,14
+    COMBOBOX        IDC_PKCS5_PRF_ID,57,24,103,90,CBS_DROPDOWNLIST | WS_TABSTOP
+    LTEXT           "PKCS-5 PRF:",IDT_PKCS5_PRF,8,26,44,11
+    CONTROL         "TrueCrypt Mode",IDC_TRUECRYPT_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,76,10
+END
+
 
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -345,7 +359,7 @@ BEGIN
         LEFTMARGIN, 7
         RIGHTMARGIN, 329
         TOPMARGIN, 7
-        BOTTOMMARGIN, 280
+        BOTTOMMARGIN, 289
     END
 
     IDD_VOLUME_PROPERTIES, DIALOG
@@ -422,6 +436,14 @@ BEGIN
         TOPMARGIN, 7
         BOTTOMMARGIN, 269
     END
+
+    IDD_DEFAULT_MOUNT_PARAMETERS, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 160
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 58
+    END
 END
 #endif    // APSTUDIO_INVOKED
 
@@ -432,8 +454,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,6,2
- PRODUCTVERSION 1,0,6,2
+ FILEVERSION 1,0,6,3
+ PRODUCTVERSION 1,0,6,3
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -450,11 +472,11 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "IDRIX"
             VALUE "FileDescription", "VeraCrypt"
-            VALUE "FileVersion", "1.0f-1"
+            VALUE "FileVersion", "1.0f-2"
             VALUE "LegalTrademarks", "VeraCrypt"
             VALUE "OriginalFilename", "VeraCrypt.exe"
             VALUE "ProductName", "VeraCrypt"
-            VALUE "ProductVersion", "1.0f-1"
+            VALUE "ProductVersion", "1.0f-2"
         END
     END
     BLOCK "VarFileInfo"
@@ -568,6 +590,7 @@ BEGIN
         MENUITEM "Test Vectors...",             IDM_TEST_VECTORS
         MENUITEM SEPARATOR
         MENUITEM "Traveler Disk Setup...",      IDM_TRAVELER
+        MENUITEM "Volume Expander",             IDM_VOLUME_EXPANDER
         MENUITEM "Volume Creation Wizard",      IDM_VOLUME_WIZARD
         MENUITEM SEPARATOR
         MENUITEM "Keyfile Generator",           IDM_KEYFILE_GENERATOR
@@ -593,6 +616,7 @@ BEGIN
         MENUITEM "Performance...",              IDM_PERFORMANCE_SETTINGS
         MENUITEM SEPARATOR
         MENUITEM "Default Keyfiles...",         IDM_DEFAULT_KEYFILES
+        MENUITEM "Default Mount Parameters...", IDM_DEFAULT_MOUNT_PARAMETERS
         MENUITEM "Security Tokens...",          IDM_TOKEN_PREFERENCES
         MENUITEM SEPARATOR
         MENUITEM "Preferences...",              IDM_PREFERENCES
diff --git a/src/Mount/Resource.h b/src/Mount/Resource.h
index e63c59a..1c50c52 100644
--- a/src/Mount/Resource.h
+++ b/src/Mount/Resource.h
@@ -20,6 +20,7 @@
 #define IDD_TOKEN_PREFERENCES           115
 #define IDD_SYSENC_SETTINGS             116
 #define IDD_FAVORITE_VOLUMES            117
+#define IDD_DEFAULT_MOUNT_PARAMETERS    118
 #define IDC_PREF_MOUNT_READONLY         1000
 #define IDC_PREF_MOUNT_REMOVABLE        1001
 #define IDC_VERIFY                      1002
@@ -161,6 +162,7 @@
 #define IDT_NEW_PKCS5_PRF               1138
 #define IDC_PKCS5_OLD_PRF_ID            1139
 #define IDC_TRUECRYPT_MODE              1140
+#define IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT 1141
 #define IDM_HELP                        40001
 #define IDM_ABOUT                       40002
 #define IDM_UNMOUNT_VOLUME              40003
@@ -225,15 +227,18 @@
 #define IDM_PERFORMANCE_SETTINGS        40062
 #define IDM_ANALYZE_SYSTEM_CRASH        40063
 #define IDM_DONATE                      40064
+#define IDM_VOLUME_EXPANDER             40065
+#define ID_SETTINGS_DEFAULTMOUNTOPTIONS 40066
+#define IDM_DEFAULT_MOUNT_PARAMETERS    40067
 
 // Next default values for new objects
 // 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NO_MFC                     1
-#define _APS_NEXT_RESOURCE_VALUE        118
-#define _APS_NEXT_COMMAND_VALUE         40065
-#define _APS_NEXT_CONTROL_VALUE         1141
+#define _APS_NEXT_RESOURCE_VALUE        119
+#define _APS_NEXT_COMMAND_VALUE         40068
+#define _APS_NEXT_CONTROL_VALUE         1142
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif
diff --git a/src/Readme.txt b/src/Readme.txt
index 0369d48..01652b0 100644
--- a/src/Readme.txt
+++ b/src/Readme.txt
@@ -161,12 +161,14 @@ Instructions for Building VeraCrypt for Linux and Mac OS X:
    'Main'.
 
 By default, a universal executable supporting both graphical and text user
-interface is built. To build a console-only executable, which requires no GUI
-library, use the 'NOGUI' parameter:
+interface (through the switch --text) is built.
+On Linux, a console-only executable, which requires no GUI library, can be
+built using the 'NOGUI' parameter:
 
    $ make NOGUI=1 WXSTATIC=1 WX_ROOT=/usr/src/wxWidgets wxbuild
    $ make NOGUI=1 WXSTATIC=1
    
+On MacOSX, building a console-only executable is not supported.
 
 Mac OS X specifics:
 -----------------------------------------------------------
diff --git a/src/Release/Setup Files/VeraCrypt User Guide.pdf b/src/Release/Setup Files/VeraCrypt User Guide.pdf
index 32eb65d..bd13d8d 100644
Binary files a/src/Release/Setup Files/VeraCrypt User Guide.pdf and b/src/Release/Setup Files/VeraCrypt User Guide.pdf differ
diff --git a/src/Setup/ComSetup.cpp b/src/Setup/ComSetup.cpp
index 29d03c9..fee83a8 100644
--- a/src/Setup/ComSetup.cpp
+++ b/src/Setup/ComSetup.cpp
@@ -34,6 +34,9 @@ extern "C" BOOL RegisterComServers (char *modulePath)
 
 	UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR, 0, SYS_WIN32);
 	UnRegisterTypeLib (LIBID_TrueCryptFormatCom, TC_FORMAT_COM_VERSION_MAJOR, TC_FORMAT_COM_VERSION_MINOR, 0, SYS_WIN32);
+	// unregister older versions that may still exist
+	UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-2, 0, SYS_WIN32);
+	UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-1, 0, SYS_WIN32);
 
 	wchar_t setupModule[MAX_PATH];
 	GetModuleFileNameW (NULL, setupModule, sizeof (setupModule) / sizeof (setupModule[0]));
@@ -68,6 +71,10 @@ extern "C" BOOL UnregisterComServers (char *modulePath)
 	if (UnRegisterTypeLib (LIBID_TrueCryptFormatCom, TC_FORMAT_COM_VERSION_MAJOR, TC_FORMAT_COM_VERSION_MINOR, 0, SYS_WIN32) != S_OK)
 		return FALSE;
 
+	// unregister older versions that may still exist
+	UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-2, 0, SYS_WIN32);
+	UnRegisterTypeLib (LIBID_TrueCryptMainCom, TC_MAIN_COM_VERSION_MAJOR, TC_MAIN_COM_VERSION_MINOR-1, 0, SYS_WIN32);
+
 	wchar_t module[1024];
 	CRegObject ro;
 	ro.FinalConstruct ();
diff --git a/src/Setup/Dir.c b/src/Setup/Dir.c
index a0380ef..ec530df 100644
--- a/src/Setup/Dir.c
+++ b/src/Setup/Dir.c
@@ -17,6 +17,7 @@
 #include <string.h>
 #include <stdlib.h>
 #include <errno.h>
+#include <Strsafe.h>
 
 #include "Dir.h"
 
@@ -28,7 +29,7 @@ mkfulldir (char *oriPath, BOOL bCheckonly)
 	char *uniq_file;
 	char path [TC_MAX_PATH];
 
-	strcpy (path, oriPath);
+	StringCbCopyA (path, TC_MAX_PATH, oriPath);
 
 	if (strlen (path) == 3 && path[1] == ':')
 		goto is_root;	/* keep final slash in root if present */
@@ -63,7 +64,7 @@ mkfulldir_internal (char *path)
 	static char tokpath[_MAX_PATH];
 	static char trail[_MAX_PATH];
 
-	strcpy (tokpath, path);
+	StringCbCopyA (tokpath, _MAX_PATH, path);
 	trail[0] = '\0';
 
 	token = strtok (tokpath, "\\/");
@@ -75,13 +76,13 @@ mkfulldir_internal (char *path)
 		trail[2] = '\0';
 		if (token)
 		{
-			strcat (trail, token);
-			strcat (trail, "\\");
+			StringCbCatA (trail, _MAX_PATH, token);
+			StringCbCatA (trail, _MAX_PATH, "\\");
 			token = strtok (NULL, "\\/");
 			if (token)
 			{		/* get share name */
-				strcat (trail, token);
-				strcat (trail, "\\");
+				StringCbCatA (trail, _MAX_PATH, token);
+				StringCbCatA (trail, _MAX_PATH, "\\");
 			}
 			token = strtok (NULL, "\\/");
 		}
@@ -89,17 +90,17 @@ mkfulldir_internal (char *path)
 
 	if (tokpath[1] == ':')
 	{			/* drive letter */
-		strcat (trail, tokpath);
-		strcat (trail, "\\");
+		StringCbCatA (trail, _MAX_PATH, tokpath);
+		StringCbCatA (trail, _MAX_PATH, "\\");
 		token = strtok (NULL, "\\/");
 	}
 
 	while (token != NULL)
 	{
 		int x;
-		strcat (trail, token);
+		StringCbCatA (trail, _MAX_PATH, token);
 		x = _mkdir (trail);
-		strcat (trail, "\\");
+		StringCbCatA (trail, _MAX_PATH, "\\");
 		token = strtok (NULL, "\\/");
 	}
 
diff --git a/src/Setup/Linux/veracrypt_install_template.sh b/src/Setup/Linux/veracrypt_install_template.sh
index 305fd4a..22d080f 100644
--- a/src/Setup/Linux/veracrypt_install_template.sh
+++ b/src/Setup/Linux/veracrypt_install_template.sh
@@ -21,6 +21,8 @@ tty >/dev/null 2>/dev/null && TTY=1
 GUI=0
 XMESSAGE=0
 XTERM=0
+GTERM=0
+KTERM=0
 
 
 case $PACKAGE_TYPE in
@@ -36,13 +38,15 @@ then
 	GUI=1
 	which xmessage >/dev/null 2>/dev/null && XMESSAGE=1
 	which xterm >/dev/null 2>/dev/null && XTERM=1
+	which gnome-terminal >/dev/null 2>/dev/null && GTERM=1
+	which konsole >/dev/null 2>/dev/null && KTERM=1
 fi
 
 if [ $TTY -eq 0 ]
 then
 	[ $GUI -eq 0 ] && echo 'Error: Terminal required' >&2 && exit 1
 	
-	if [ $XMESSAGE -eq 0 ] || [ $XTERM -eq 0 ]
+	if [ $XMESSAGE -eq 0 ] || ([ $XTERM -eq 0 ] && [ $GTERM -eq 0 ] && [ $KTERM -eq 0 ])
 	then
 		which gnome-terminal && exec gnome-terminal -e "$0"
 		which konsole && exec konsole -e "$0"
@@ -53,11 +57,13 @@ then
 	fi
 fi
 
-if [ $XMESSAGE -eq 0 ] || [ $XTERM -eq 0 ]
+if [ $XMESSAGE -eq 0 ] || ([ $XTERM -eq 0 ] && [ $GTERM -eq 0 ] && [ $KTERM -eq 0 ])
 then
 	GUI=0
 	XMESSAGE=0
 	XTERM=0
+	GTERM=0
+	KTERM=0
 fi
 
 
@@ -73,7 +79,20 @@ show_message()
 			then
 				echo "$*"
 			else
-				xterm -T 'VeraCrypt Setup' -e sh -c "echo $*; read A"
+				if [ $XTERM -eq 1 ]
+				then
+					xterm -T 'VeraCrypt Setup' -e sh -c "echo $*; read A"
+				else
+					if [ $GTERM -eq 1 ]
+					then
+						gnome-terminal --title='VeraCrypt Setup' -e "sh -c \"echo $*; read A\""
+					else
+						if [ $KTERM -eq 1 ]
+						then
+							konsole -T 'VeraCrypt Setup' -e "sh -c \"echo $*; read A\""
+						fi
+					fi
+				fi
 			fi
 		fi
 	else
@@ -755,16 +774,36 @@ printf 'terms of the VeraCrypt License.\n\nPress Enter to display the license te
 read A
 
 MORE=more
-which less >/dev/null 2>/dev/null && MORE='less -E -X'
-
+HASLESS=0
+which less >/dev/null 2>/dev/null && HASLESS=1
+if [ $HASLESS -eq 1 ]
+then
+	MORE='less -E -X'
+fi
 	cat <<_END | cat - $LICENSE | $MORE
 
 Press Enter or space bar to see the rest of the license.
 
 
 _END
+	if [ $? -ne 0 ]
+	then
+		if [ $HASLESS -eq 1 ]
+		then
+# use less without -X as it is not supported by some versions (busybox case)
+			MORE='less -E'
+			cat <<_END | cat - $LICENSE | $MORE
+
+Press Enter or space bar to see the rest of the license.
+
+
+_END
+			[ $? -ne 0 ] && exit 1
+		else
+			exit 1
+		fi
+	fi
 
-	[ $? -ne 0 ] && exit 1
 	rm -f $LICENSE
 
 	ACCEPTED=0
@@ -833,7 +872,20 @@ then
 
 	if [ $GUI -eq 1 ]
 	then
-		exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE; rm -f $PACKAGE; echo; echo Press Enter to exit...; read A"
+		if [ $XTERM -eq 1 ]
+		then
+			exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE; rm -f $PACKAGE; echo; echo Press Enter to exit...; read A"
+		else
+			if [ $GTERM -eq 1 ]
+			then
+				exec gnome-terminal --title='VeraCrypt Setup' -e "sh -c \"echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE; rm -f $PACKAGE; echo; echo Press Enter to exit...; read A\""
+			else
+				if [ $KTERM -eq 1 ]
+				then
+					exec konsole -T 'VeraCrypt Setup' -e "sh -c \"echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE; rm -f $PACKAGE; echo; echo Press Enter to exit...; read A\""
+				fi
+			fi
+		fi
 	else
 		echo 'Installing package...'
 		$SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && INSTALLED=1
diff --git a/src/Setup/MacOSX/veracrypt.pkgproj b/src/Setup/MacOSX/veracrypt.pkgproj
index cdb8a76..64cca4a 100755
--- a/src/Setup/MacOSX/veracrypt.pkgproj
+++ b/src/Setup/MacOSX/veracrypt.pkgproj
@@ -33,6 +33,8 @@
 									<integer>0</integer>
 								</dict>
 								<dict>
+									<key>BUNDLE_CAN_DOWNGRADE</key>
+									<true/>
 									<key>CHILDREN</key>
 									<array/>
 									<key>GID</key>
@@ -493,7 +495,7 @@
 				<key>OVERWRITE_PERMISSIONS</key>
 				<false/>
 				<key>VERSION</key>
-				<string>1.0e</string>
+				<string>1.6.3</string>
 			</dict>
 			<key>UUID</key>
 			<string>B14381D9-EC5F-43E4-B971-82AB3D132A64</string>
@@ -1049,7 +1051,7 @@ Merci de ré-installer OSXFUSE et de cocher l'option de compatibilité MacFUSE d
 				</dict>
 			</array>
 			<key>NAME</key>
-			<string>VeraCrypt 1.0f-1</string>
+			<string>VeraCrypt 1.0f-2</string>
 		</dict>
 	</dict>
 	<key>SHARED_GLOBAL_DATA</key>
diff --git a/src/Setup/SelfExtract.c b/src/Setup/SelfExtract.c
index cb3740e..7169c99 100644
--- a/src/Setup/SelfExtract.c
+++ b/src/Setup/SelfExtract.c
@@ -270,7 +270,8 @@ BOOL MakeSelfExtractingPackage (HWND hwndDlg, char *szDestDir)
 			char tmpstr [1000];
 
 			StringCbPrintfA (tmpstr, sizeof(tmpstr), "File not found:\n\n'%s'", szTmpFilePath);
-			remove (outputFile);
+			if (remove (outputFile))
+				StringCbCatA (tmpstr, sizeof(tmpstr), "\nFailed also to delete package file");
 			PkgError (tmpstr);
 			goto err;
 		}
@@ -287,16 +288,21 @@ BOOL MakeSelfExtractingPackage (HWND hwndDlg, char *szDestDir)
 	if (buffer == NULL)
 	{
 		PkgError ("Cannot allocate memory for uncompressed data");
-		remove (outputFile);
+		if (remove (outputFile))
+			PkgError ("Cannot allocate memory for uncompressed data.\nFailed also to delete package file");
+		else
+			PkgError ("Cannot allocate memory for uncompressed data");
 		goto err;
 	}
 
 
 	// Write the start marker
 	if (!SaveBufferToFile (MAG_START_MARKER, outputFile, strlen (MAG_START_MARKER), TRUE))
-	{
-		PkgError ("Cannot write the start marker");
-		remove (outputFile);
+	{		
+		if (remove (outputFile))
+			PkgError ("Cannot write the start marker\nFailed also to delete package file");
+		else
+			PkgError ("Cannot write the start marker");
 		goto err;
 	}
 
@@ -319,7 +325,8 @@ BOOL MakeSelfExtractingPackage (HWND hwndDlg, char *szDestDir)
 
 			free (tmpBuffer);
 			StringCbPrintfA (tmpstr, sizeof(tmpstr), "Cannot load file \n'%s'", szTmpFilePath);
-			remove (outputFile);
+			if (remove (outputFile))
+				StringCbCatA (tmpstr, sizeof(tmpstr), "\nFailed also to delete package file");
 			PkgError (tmpstr);
 			goto err;
 		}
@@ -352,8 +359,10 @@ BOOL MakeSelfExtractingPackage (HWND hwndDlg, char *szDestDir)
 	mputLong (szTmp32bitPtr, (unsigned __int32) uncompressedDataLen);
 	if (!SaveBufferToFile (szTmp32bit, outputFile, sizeof (szTmp32bit), TRUE))
 	{
-		remove (outputFile);
-		PkgError ("Cannot write the total size of the uncompressed data");
+		if (remove (outputFile))
+			PkgError ("Cannot write the total size of the uncompressed data.\nFailed also to delete package file");
+		else
+			PkgError ("Cannot write the total size of the uncompressed data");
 		goto err;
 	}
 
@@ -362,16 +371,20 @@ BOOL MakeSelfExtractingPackage (HWND hwndDlg, char *szDestDir)
 	compressedBuffer = malloc (uncompressedDataLen + 524288);	// + 512K reserve
 	if (compressedBuffer == NULL)
 	{
-		remove (outputFile);
-		PkgError ("Cannot allocate memory for compressed data");
+		if (remove (outputFile))
+			PkgError ("Cannot allocate memory for compressed data.\nFailed also to delete package file");
+		else
+			PkgError ("Cannot allocate memory for compressed data");
 		goto err;
 	}
 
 	compressedDataLen = CompressBuffer (compressedBuffer, buffer, uncompressedDataLen);
 	if (compressedDataLen <= 0)
 	{
-		remove (outputFile);
-		PkgError ("Failed to compress the data");
+		if (remove (outputFile))
+			PkgError ("Failed to compress the data.\nFailed also to delete package file");
+		else
+			PkgError ("Failed to compress the data");
 		goto err;
 	}
 
@@ -383,24 +396,30 @@ BOOL MakeSelfExtractingPackage (HWND hwndDlg, char *szDestDir)
 	mputLong (szTmp32bitPtr, (unsigned __int32) compressedDataLen);
 	if (!SaveBufferToFile (szTmp32bit, outputFile, sizeof (szTmp32bit), TRUE))
 	{
-		remove (outputFile);
-		PkgError ("Cannot write the total size of the compressed data");
+		if (remove (outputFile))
+			PkgError ("Cannot write the total size of the compressed data.\nFailed also to delete package file");
+		else
+			PkgError ("Cannot write the total size of the compressed data");
 		goto err;
 	}
 
 	// Write the compressed data
 	if (!SaveBufferToFile (compressedBuffer, outputFile, compressedDataLen, TRUE))
 	{
-		remove (outputFile);
-		PkgError ("Cannot write compressed data to the package");
+		if (remove (outputFile))
+			PkgError ("Cannot write compressed data to the package.\nFailed also to delete package file");
+		else
+			PkgError ("Cannot write compressed data to the package");
 		goto err;
 	}
 
 	// Write the end marker
 	if (!SaveBufferToFile (MagEndMarker, outputFile, strlen (MagEndMarker), TRUE))
 	{
-		remove (outputFile);
-		PkgError ("Cannot write the end marker");
+		if (remove (outputFile))
+			PkgError ("Cannot write the end marker.\nFailed also to delete package file");
+		else
+			PkgError ("Cannot write the end marker");
 		goto err;
 	}
 
@@ -417,8 +436,10 @@ BOOL MakeSelfExtractingPackage (HWND hwndDlg, char *szDestDir)
 		if (tmpBuffer == NULL)
 		{
 			handleWin32Error (hwndDlg);
-			remove (outputFile);
-			PkgError ("Cannot load the package to compute CRC");
+			if (remove (outputFile))
+				PkgError ("Cannot load the package to compute CRC.\nFailed also to delete package file");
+			else
+				PkgError ("Cannot load the package to compute CRC");
 			goto err;
 		}
 
@@ -431,8 +452,10 @@ BOOL MakeSelfExtractingPackage (HWND hwndDlg, char *szDestDir)
 
 		if (!SaveBufferToFile (szTmp32bit, outputFile, sizeof (szTmp32bit), TRUE))
 		{
-			remove (outputFile);
-			PkgError ("Cannot write the total size of the compressed data");
+			if (remove (outputFile))
+				PkgError ("Cannot write the total size of the compressed data.\nFailed also to delete package file");
+			else
+				PkgError ("Cannot write the total size of the compressed data");
 			goto err;
 		}
 	}
diff --git a/src/Setup/Setup.c b/src/Setup/Setup.c
index 0e40443..bc08071 100644
--- a/src/Setup/Setup.c
+++ b/src/Setup/Setup.c
@@ -101,13 +101,321 @@ BOOL StatRemoveDirectory (char *lpszDir)
 	struct __stat64 st;
 
 	if (_stat64 (lpszDir, &st) == 0)
-		return RemoveDirectory (lpszDir);
+	{
+		BOOL bStatus = RemoveDirectory (lpszDir);
+		if (!bStatus)
+		{
+			/* force removal of the non empty directory */
+			char szOpPath[TC_MAX_PATH + 1] = {0};
+			SHFILEOPSTRUCTA op;
+
+			StringCbCopyA(szOpPath, sizeof(szOpPath)-1, lpszDir);
+			ZeroMemory(&op, sizeof(op));
+			op.wFunc = FO_DELETE;
+			op.pFrom = szOpPath;
+			op.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR;
+
+			if ((0 == SHFileOperation(&op)) && (!op.fAnyOperationsAborted))
+				bStatus = TRUE;
+		}
+		return bStatus;
+	}
 	else
 		return TRUE;
 }
 
+
+/* Recursively set the given OWNER security descriptor to the key and its subkeys */
+static void RecursiveSetOwner (HKEY hKey, PSECURITY_DESCRIPTOR pSD)
+{
+	LSTATUS status = 0;
+	DWORD dwIndex = 0, dwMaxNameLen = 0, dwNameLen = 0, numberSubKeys = 0;
+	HKEY hSubKey;   
+
+	if (	(ERROR_SUCCESS == status) && (ERROR_SUCCESS == RegQueryInfoKey(hKey, NULL, NULL, NULL, &numberSubKeys, &dwMaxNameLen, NULL, NULL, NULL, NULL, NULL, NULL))
+		&&	(numberSubKeys >= 1)
+		)
+	{
+		dwMaxNameLen++;
+		char* szNameValue = new char[dwMaxNameLen];
+		while (true)
+		{
+			dwNameLen = dwMaxNameLen;
+			status = RegEnumKeyExA (hKey, dwIndex++, szNameValue, &dwNameLen, NULL, NULL, NULL, NULL);
+			if (status == ERROR_SUCCESS)
+			{
+				status = RegOpenKeyExA (hKey, szNameValue, 0, WRITE_OWNER | KEY_READ , &hSubKey);
+				if (ERROR_SUCCESS == status)
+				{
+					RecursiveSetOwner (hSubKey, pSD);
+					RegCloseKey(hSubKey);
+				}
+			}
+			else
+				break;
+		}
+		delete [] szNameValue;
+	}
+
+	RegSetKeySecurity (hKey, OWNER_SECURITY_INFORMATION, pSD);
+}
+
+/* Recursively set the given DACL security descriptor to the key and its subkeys */
+static void RecursiveSetDACL (HKEY hKey, const char* SubKeyName, PSECURITY_DESCRIPTOR pSD)
+{
+	HKEY hSubKey;
+	DWORD dwIndex = 0, dwMaxNameLen = 0, dwNameLen = 0, numberSubKeys = 0;
+	LSTATUS status = RegOpenKeyExA(hKey, SubKeyName, 0, WRITE_DAC | KEY_READ /*| ACCESS_SYSTEM_SECURITY*/, &hSubKey);
+	if (status == ERROR_SUCCESS) 
+	{
+		status = RegSetKeySecurity (hSubKey, DACL_SECURITY_INFORMATION, pSD);
+		if (status == ERROR_SUCCESS)
+		{
+			RegCloseKey(hSubKey);
+			status = RegOpenKeyExA(hKey, SubKeyName, 0, WRITE_DAC | KEY_READ , &hSubKey);
+		}
+
+		if ( (ERROR_SUCCESS == status)
+			&&	(ERROR_SUCCESS == RegQueryInfoKeyA(hSubKey, NULL, NULL, NULL, &numberSubKeys, &dwMaxNameLen, NULL, NULL, NULL, NULL, NULL, NULL))
+			&&	(numberSubKeys >= 1)
+			)
+		{
+			dwMaxNameLen++;
+			char* szNameValue = new char[dwMaxNameLen];
+			while (true)
+			{
+				dwNameLen = dwMaxNameLen;
+				status = RegEnumKeyExA (hSubKey, dwIndex++, szNameValue, &dwNameLen, NULL, NULL, NULL, NULL);
+				if (status == ERROR_SUCCESS)
+			 	{
+					RecursiveSetDACL (hSubKey, szNameValue, pSD);
+				}
+				else
+					break;
+			}
+			delete [] szNameValue;
+		}
+	}
+}
+
+/* Correct the key permissions to allow its deletion */
+static void AllowKeyAccess(HKEY Key,const char* SubKeyName)
+{
+	LSTATUS RegResult;
+	HKEY SvcKey = NULL;
+	DWORD dwLength = 0;
+	HANDLE Token = NULL;
+	PTOKEN_USER pTokenUser = NULL;
+	std::string sNewSD;
+
+	RegResult = RegOpenKeyExA(Key, SubKeyName, 0, WRITE_OWNER | KEY_READ, &SvcKey);
+	if (RegResult==ERROR_SUCCESS) 
+	{
+		if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &Token)) 
+		{
+			if (!GetTokenInformation(Token, TokenUser, pTokenUser, 0, &dwLength)) 
+			{
+				if (GetLastError() ==ERROR_INSUFFICIENT_BUFFER) 
+				{
+					pTokenUser = (PTOKEN_USER) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwLength);
+					if (pTokenUser) 
+					{
+						if (GetTokenInformation(Token, TokenUser, pTokenUser, dwLength, &dwLength))
+						{
+							SECURITY_DESCRIPTOR SecDesc;
+							if (	InitializeSecurityDescriptor(&SecDesc, SECURITY_DESCRIPTOR_REVISION)
+								&&	SetSecurityDescriptorDacl(&SecDesc, TRUE, NULL, FALSE) // NULL DACL: full access to everyone
+								&& SetSecurityDescriptorOwner(&SecDesc, pTokenUser->User.Sid, FALSE)
+								)
+							{
+								RecursiveSetOwner(SvcKey, &SecDesc);
+							}
+						}
+					
+					}
+				}
+			}
+		}
+		RegCloseKey(SvcKey);
+	}
+
+	if (pTokenUser) 
+	{
+		PSID pSid = pTokenUser->User.Sid;
+		DWORD dwAclSize = sizeof(ACL) + sizeof(ACCESS_ALLOWED_ACE) + ::GetLengthSid(pSid) - sizeof(DWORD);
+		PACL pDacl = (PACL) new BYTE[dwAclSize];
+		if (pDacl)
+		{
+			if (TRUE == ::InitializeAcl(pDacl, dwAclSize, ACL_REVISION))
+			{
+				if (TRUE == AddAccessAllowedAceEx(pDacl, ACL_REVISION, CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE, WRITE_DAC | KEY_ALL_ACCESS, pSid))
+				{
+					SECURITY_DESCRIPTOR SecDesc;
+					if (TRUE == ::InitializeSecurityDescriptor(&SecDesc, SECURITY_DESCRIPTOR_REVISION))
+					{
+						if (TRUE == ::SetSecurityDescriptorDacl(&SecDesc, TRUE, pDacl, FALSE))
+						{
+							RecursiveSetDACL (Key, SubKeyName, &SecDesc);
+						}
+					}
+				}
+			}
+			delete [] pDacl;
+		}
+	}
+
+	if (pTokenUser)
+		HeapFree(GetProcessHeap(), 0, pTokenUser);
+	if (Token)
+		CloseHandle(Token);
+}
+
+void SearchAndDeleteRegistrySubString (HKEY hKey, const char *subKey, const char *str, BOOL bEnumSubKeys, const char* enumMatchSubStr)
+{
+	HKEY hSubKey = 0;
+	LSTATUS status = 0;
+	DWORD dwIndex = 0, dwType, dwValueNameLen, dwDataLen;
+	std::list<std::string> subKeysList;
+	size_t subStringLength = str? strlen(str) : 0;
+
+	if (bEnumSubKeys)
+	{
+         DWORD dwMaxNameLen = 0;
+         if (ERROR_SUCCESS == RegQueryInfoKey(hKey, NULL, NULL, NULL, NULL, &dwMaxNameLen, NULL, NULL, NULL, NULL, NULL, NULL))
+         {
+            dwMaxNameLen++;
+            char* szNameValue = new char[dwMaxNameLen];
+			   dwIndex = 0;
+			   while (true)
+			   {
+				   dwValueNameLen = dwMaxNameLen;
+				   status = RegEnumKeyExA (hKey, dwIndex++, szNameValue, &dwValueNameLen, NULL, NULL, NULL, NULL);
+				   if (status == ERROR_SUCCESS)
+				   {
+						if (enumMatchSubStr && !strstr(szNameValue, enumMatchSubStr))
+							continue;
+					std::string entryName = szNameValue;
+					entryName += "\\";
+					entryName += subKey;
+					entryName += "\\";
+					subKeysList.push_back(entryName);
+				   }
+				   else
+					   break;
+			   }
+            delete [] szNameValue;
+         }
+	}
+	else
+	{
+		subKeysList.push_back(subKey);
+	}
+
+	for (std::list<std::string>::iterator ItSubKey = subKeysList.begin(); ItSubKey != subKeysList.end(); ItSubKey++)
+	{	
+		// if the string to search for is empty, delete the sub key, otherwise, look for matching value and delete them
+		if (subStringLength == 0)
+		{
+			if (ERROR_ACCESS_DENIED == SHDeleteKeyA (hKey, ItSubKey->c_str()))
+			{
+				// grant permission to delete
+				AllowKeyAccess (hKey, ItSubKey->c_str());
+
+				// try again
+				SHDeleteKeyA (hKey, ItSubKey->c_str());
+			}
+		}
+		else
+		{
+			if (RegOpenKeyExA (hKey, ItSubKey->c_str(), 0, KEY_ALL_ACCESS, &hSubKey) == ERROR_SUCCESS)
+			{
+            DWORD dwMaxNameLen = 0, dwMaxDataLen = 0;
+            if (ERROR_SUCCESS == RegQueryInfoKey(hSubKey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &dwMaxNameLen, &dwMaxDataLen, NULL, NULL))
+            {
+               dwMaxNameLen++;
+               char* szNameValue = new char[dwMaxNameLen];
+               LPBYTE pbData = new BYTE[dwMaxDataLen];
+
+				   std::list<std::string> foundEntries;
+				   dwIndex = 0;
+				   do
+				   {
+					   dwValueNameLen = dwMaxNameLen;
+					   dwDataLen = dwMaxDataLen;
+					   status = RegEnumValueA(hSubKey, dwIndex++, szNameValue, &dwValueNameLen, NULL, &dwType, pbData, &dwDataLen);
+					   if (status == ERROR_SUCCESS)
+					   {
+						   if (	(strlen(szNameValue) >= subStringLength && strstr(szNameValue, str))
+							   ||	(dwType == REG_SZ && strlen((char*) pbData) >= subStringLength && strstr((char*) pbData, str))
+							   )
+						   {
+							   foundEntries.push_back(szNameValue);
+						   }
+					   }
+				   } while ((status == ERROR_SUCCESS) || (status == ERROR_MORE_DATA)); // we ignore ERROR_MORE_DATA errors since 
+                                                                                   // we are sure to use the correct sizes
+
+				   // delete the entries
+				   if (!foundEntries.empty())
+				   {
+					   for (std::list<std::string>::iterator It = foundEntries.begin(); 
+						   It != foundEntries.end(); It++)
+					   {
+						   RegDeleteValueA (hSubKey, It->c_str());
+					   }
+				   }
+
+               delete [] szNameValue;
+               delete [] pbData;
+            }
+
+
+				RegCloseKey (hSubKey);
+			}
+		}
+	}
+}
+
+/* Set the given privilege of the current process */
+BOOL SetPrivilege(LPTSTR szPrivilegeName, BOOL bEnable) 
+{
+	TOKEN_PRIVILEGES tp;
+	LUID luid;
+	HANDLE hProcessToken; 
+	BOOL bStatus = FALSE;
+
+	if ( OpenProcessToken(GetCurrentProcess(),
+			TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
+			&hProcessToken) )
+	{
+		if ( LookupPrivilegeValue( 
+				NULL,
+				szPrivilegeName,
+				&luid ) )
+		{
+
+			tp.PrivilegeCount = 1;
+			tp.Privileges[0].Luid = luid;
+			tp.Privileges[0].Attributes = bEnable? SE_PRIVILEGE_ENABLED : SE_PRIVILEGE_REMOVED;
+
+			// Enable the privilege
+			bStatus = AdjustTokenPrivileges(
+				hProcessToken, 
+				FALSE, 
+				&tp, 
+				sizeof(TOKEN_PRIVILEGES), 
+				(PTOKEN_PRIVILEGES) NULL, 
+				(PDWORD) NULL);
+		}
+
+		CloseHandle(hProcessToken);
+	}
+
+	return bStatus;
+}
+
 HRESULT CreateLink (char *lpszPathObj, char *lpszArguments,
-	    char *lpszPathLink)
+	    char *lpszPathLink, const char* iconFile, int iconIndex)
 {
 	HRESULT hres;
 	IShellLink *psl;
@@ -123,6 +431,10 @@ HRESULT CreateLink (char *lpszPathObj, char *lpszArguments,
 		   description.  */
 		psl->SetPath (lpszPathObj);
 		psl->SetArguments (lpszArguments);
+		if (iconFile)
+		{
+			psl->SetIconLocation (iconFile, iconIndex);
+		}
 
 		// Application ID
 		if (strstr (lpszPathObj, TC_APP_NAME ".exe"))
@@ -233,11 +545,12 @@ void IconMessage (HWND hwndDlg, char *txt)
 void DetermineUpgradeDowngradeStatus (BOOL bCloseDriverHandle, LONG *driverVersionPtr)
 {
 	LONG driverVersion = VERSION_NUM;
+	int status = 0;
 
 	if (hDriver == INVALID_HANDLE_VALUE)
-		DriverAttach();
+		status = DriverAttach();
 
-	if (hDriver != INVALID_HANDLE_VALUE)
+	if ((status == 0) && (hDriver != INVALID_HANDLE_VALUE))
 	{
 		DWORD dwResult;
 		BOOL bResult = DeviceIoControl (hDriver, TC_IOCTL_GET_DRIVER_VERSION, NULL, 0, &driverVersion, sizeof (driverVersion), &dwResult, NULL);
@@ -727,7 +1040,6 @@ BOOL DoApplicationDataUninstall (HWND hwndDlg)
 
 BOOL DoRegUninstall (HWND hwndDlg, BOOL bRemoveDeprecated)
 {
-	BOOL bOK = FALSE;
 	char regk [64];
 
 	// Unregister COM servers
@@ -746,28 +1058,41 @@ BOOL DoRegUninstall (HWND hwndDlg, BOOL bRemoveDeprecated)
 	RegDeleteKey (HKEY_LOCAL_MACHINE, "Software\\Classes\\VeraCryptVolume\\Shell");
 	RegDeleteKey (HKEY_LOCAL_MACHINE, "Software\\Classes\\VeraCryptVolume\\DefaultIcon");
 	RegDeleteKey (HKEY_LOCAL_MACHINE, "Software\\Classes\\VeraCryptVolume");
-	RegDeleteKey (HKEY_CURRENT_USER, "Software\\VeraCrypt");
+	RegDeleteKey (HKEY_CURRENT_USER, "Software\\VeraCrypt");	
 
 	if (!bRemoveDeprecated)
 	{
+		HKEY hKey;
 		GetStartupRegKeyName (regk, sizeof(regk));
 		DeleteRegistryValue (regk, "VeraCrypt");
 
-		RegDeleteKey (HKEY_LOCAL_MACHINE, "Software\\Classes\\.hc");
-		SHChangeNotify (SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);
-	}
+		SHDeleteKey (HKEY_LOCAL_MACHINE, "Software\\Classes\\.hc");
 
-	bOK = TRUE;
+		// enable the SE_TAKE_OWNERSHIP_NAME privilege for this operation
+		SetPrivilege (SE_TAKE_OWNERSHIP_NAME, TRUE);
 
-	if (bOK == FALSE && GetLastError ()!= ERROR_NO_TOKEN && GetLastError ()!= ERROR_FILE_NOT_FOUND
-	    && GetLastError ()!= ERROR_PATH_NOT_FOUND)
-	{
-		handleWin32Error (hwndDlg);
+		// clean MuiCache list from VeraCrypt entries
+		SearchAndDeleteRegistrySubString (HKEY_CLASSES_ROOT, "Local Settings\\Software\\Microsoft\\Windows\\Shell\\MuiCache", "VeraCrypt", FALSE, NULL);
+
+		// clean other VeraCrypt entries from all users
+		SearchAndDeleteRegistrySubString (HKEY_USERS, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.hc", NULL, TRUE, NULL);
+		SearchAndDeleteRegistrySubString (HKEY_USERS, "Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Compatibility Assistant\\Persisted", "VeraCrypt", TRUE, NULL);
+		SearchAndDeleteRegistrySubString (HKEY_USERS, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StartPage\\NewShortcuts", "VeraCrypt", TRUE, NULL);
+		
+		if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM", 0, KEY_ALL_ACCESS | WRITE_DAC | WRITE_OWNER, &hKey) == ERROR_SUCCESS)
+		{
+			SearchAndDeleteRegistrySubString (hKey, "Enum\\Root\\LEGACY_VERACRYPT", NULL, TRUE, "ControlSet");
+			SearchAndDeleteRegistrySubString (hKey, "services\\veracrypt", NULL, TRUE, "ControlSet");
+			RegCloseKey(hKey);
+		}
+
+		// disable the SE_TAKE_OWNERSHIP_NAME privilege for this operation
+		SetPrivilege (SE_TAKE_OWNERSHIP_NAME, FALSE);
+
+		SHChangeNotify (SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);
 	}
-	else
-		bOK = TRUE;
 
-	return bOK;
+	return TRUE;
 }
 
 
@@ -858,10 +1183,16 @@ try_delete:
 		StatusMessageParam (hwndDlg, "REMOVING", lpszService);
 
 	if (hService != NULL)
+	{
 		CloseServiceHandle (hService);
+		hService = NULL;
+	}
 
 	if (hManager != NULL)
+	{
 		CloseServiceHandle (hManager);
+		hManager = NULL;
+	}
 
 	hManager = OpenSCManager (NULL, NULL, SC_MANAGER_ALL_ACCESS);
 	if (hManager == NULL)
@@ -879,6 +1210,8 @@ try_delete:
 			// Second try for an eventual no-install driver instance
 			CloseServiceHandle (hService);
 			CloseServiceHandle (hManager);
+			hService = NULL;
+			hManager = NULL;
 
 			Sleep(1000);
 			firstTry = FALSE;
@@ -1143,6 +1476,11 @@ BOOL DoShortcutsUninstall (HWND hwndDlg, char *szDestDir)
 	if (StatDeleteFile (szTmp2) == FALSE)
 		goto error;
 
+	StringCbPrintfA (szTmp2, sizeof(szTmp2), "%s%s", szLinkDir, "\\VeraCryptExpander.lnk");
+	RemoveMessage (hwndDlg, szTmp2);
+	if (StatDeleteFile (szTmp2) == FALSE)
+		goto error;
+
 	StringCbPrintfA (szTmp2, sizeof(szTmp2), "%s%s", szLinkDir, "\\VeraCrypt Website.url");
 	RemoveMessage (hwndDlg, szTmp2);
 	if (StatDeleteFile (szTmp2) == FALSE)
@@ -1239,7 +1577,14 @@ BOOL DoShortcutsInstall (HWND hwndDlg, char *szDestDir, BOOL bProgGroup, BOOL bD
 		StringCbPrintfA (szTmp2, sizeof(szTmp2), "%s%s", szLinkDir, "\\VeraCrypt.lnk");
 
 		IconMessage (hwndDlg, szTmp2);
-		if (CreateLink (szTmp, "", szTmp2) != S_OK)
+		if (CreateLink (szTmp, "", szTmp2, NULL, -1) != S_OK)
+			goto error;
+
+		StringCbPrintfA (szTmp, sizeof(szTmp), "%s%s", szDir, "VeraCryptExpander.exe");
+		StringCbPrintfA (szTmp2, sizeof(szTmp2), "%s%s", szLinkDir, "\\VeraCryptExpander.lnk");
+
+		IconMessage (hwndDlg, szTmp2);
+		if (CreateLink (szTmp, "", szTmp2, NULL, -1) != S_OK)
 			goto error;
 
 		StringCbPrintfA (szTmp2, sizeof(szTmp2), "%s%s", szLinkDir, "\\VeraCrypt Website.url");
@@ -1257,10 +1602,15 @@ BOOL DoShortcutsInstall (HWND hwndDlg, char *szDestDir, BOOL bProgGroup, BOOL bD
 
 		StringCbPrintfA (szTmp, sizeof(szTmp), "%s%s", szDir, "VeraCrypt Setup.exe");
 		StringCbPrintfA (szTmp2, sizeof(szTmp2), "%s%s", szLinkDir, "\\Uninstall VeraCrypt.lnk");
-		StringCbCopyA (szTmp3, sizeof(szTmp3), "/u");
+		if (GetSystemDirectoryA (szTmp3, sizeof(szTmp3)))
+		{
+			StringCbCatA (szTmp3, sizeof(szTmp3), "\\control.exe");
+		}
+		else
+			StringCbCopyA(szTmp3, sizeof(szTmp3), "C:\\Windows\\System32\\control.exe");
 
 		IconMessage (hwndDlg, szTmp2);
-		if (CreateLink (szTmp, szTmp3, szTmp2) != S_OK)
+		if (CreateLink (szTmp3, "appwiz.cpl", szTmp2, szTmp, 0) != S_OK)
 			goto error;
 
 		StringCbPrintfA (szTmp2, sizeof(szTmp2), "%s%s", szLinkDir, "\\VeraCrypt User's Guide.lnk");
@@ -1289,7 +1639,7 @@ BOOL DoShortcutsInstall (HWND hwndDlg, char *szDestDir, BOOL bProgGroup, BOOL bD
 
 		IconMessage (hwndDlg, szTmp2);
 
-		if (CreateLink (szTmp, "", szTmp2) != S_OK)
+		if (CreateLink (szTmp, "", szTmp2, NULL, -1) != S_OK)
 			goto error;
 	}
 
@@ -1435,7 +1785,7 @@ void DoUninstall (void *arg)
 			DoServiceUninstall (hwndDlg, "VeraCryptService");
 
 			GetTempPath (sizeof (temp), temp);
-			StringCbPrintfA (UninstallBatch, sizeof (UninstallBatch), "%s\\VeraCrypt-Uninstall.bat", temp);
+			StringCbPrintfA (UninstallBatch, sizeof (UninstallBatch), "%sVeraCrypt-Uninstall.bat", temp);
 
 			UninstallBatch [sizeof(UninstallBatch)-1] = 0;
 
@@ -1445,7 +1795,7 @@ void DoUninstall (void *arg)
 				bOK = FALSE;
 			else
 			{
-				fprintf (f, ":loop\n"
+				fprintf (f,":loop\n"
 					"del \"%s%s\"\n"
 					"if exist \"%s%s\" goto loop\n"
 					"rmdir \"%s\"\n"
@@ -1926,6 +2276,7 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *lpszComm
 	if (IsAdmin () != TRUE)
 		if (MessageBoxW (NULL, GetString ("SETUP_ADMIN"), lpszTitle, MB_YESNO | MB_ICONQUESTION) != IDYES)
 		{
+			FinalizeApp ();
 			exit (1);
 		}
 
@@ -1991,6 +2342,7 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *lpszComm
 			else if (!bDevm)
 			{
 				MessageBox (NULL, "Error: This installer file does not contain any compressed files.\n\nTo create a self-extracting installation package (with embedded compressed files), run:\n\"VeraCrypt Setup.exe\" /p", "VeraCrypt", MB_ICONERROR | MB_SETFOREGROUND | MB_TOPMOST);
+				FinalizeApp ();
 				exit (1);
 			}
 
@@ -2010,6 +2362,7 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *lpszComm
 					bUninstall = TRUE;
 					break;
 				default:
+					FinalizeApp ();
 					exit (1);
 				}
 			}
@@ -2058,6 +2411,6 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, char *lpszComm
 			}
 		}
 	}
-
+	FinalizeApp ();
 	return 0;
 }
diff --git a/src/Setup/Setup.h b/src/Setup/Setup.h
index 7a4d64f..d2fb6c7 100644
--- a/src/Setup/Setup.h
+++ b/src/Setup/Setup.h
@@ -22,6 +22,7 @@ static char *szFiles[]=
 	"AVeraCrypt User Guide.pdf",
 	"ALicense.txt",
 	"AVeraCrypt.exe",
+	"AVeraCryptExpander.exe",
 	"AVeraCrypt Format.exe",
 	"Averacrypt.sys",
 	"Averacrypt-x64.sys",
@@ -72,6 +73,7 @@ static char *szCompressedFiles[]=
 	"VeraCrypt User Guide.pdf",
 	"License.txt",
 	"VeraCrypt.exe",
+	"VeraCryptExpander.exe",
 	"VeraCrypt Format.exe",
 	"veracrypt.sys",
 	"veracrypt-x64.sys",
diff --git a/src/Setup/Setup.rc b/src/Setup/Setup.rc
index 95c85d0..cbf9243 100644
--- a/src/Setup/Setup.rc
+++ b/src/Setup/Setup.rc
@@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,6,2
- PRODUCTVERSION 1,0,6,2
+ FILEVERSION 1,0,6,3
+ PRODUCTVERSION 1,0,6,3
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -46,11 +46,11 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "IDRIX"
             VALUE "FileDescription", "VeraCrypt Setup"
-            VALUE "FileVersion", "1.0f-1"
+            VALUE "FileVersion", "1.0f-2"
             VALUE "LegalTrademarks", "VeraCrypt"
             VALUE "OriginalFilename", "VeraCrypt Setup.exe"
             VALUE "ProductName", "VeraCrypt"
-            VALUE "ProductVersion", "1.0f-1"
+            VALUE "ProductVersion", "1.0f-2"
         END
     END
     BLOCK "VarFileInfo"
diff --git a/src/Signing/sign.bat b/src/Signing/sign.bat
index 14e1348..2223684 100644
--- a/src/Signing/sign.bat
+++ b/src/Signing/sign.bat
@@ -5,6 +5,7 @@ signtool sign /v /a /n IDRIX /ac thawte_Primary_MS_Cross_Cert.cer /t http://time
 
 signtool sign /v /a /n IDRIX /ac Thawt_CodeSigning_CA.crt /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt.exe"
 signtool sign /v /a /n IDRIX /ac Thawt_CodeSigning_CA.crt /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt Format.exe"
+signtool sign /v /a /n IDRIX /ac Thawt_CodeSigning_CA.crt /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCryptExpander.exe"
 
 cd "..\Release\Setup Files\"
 
@@ -16,6 +17,6 @@ del *.xml
 
 cd "..\..\Signing"
 
-signtool sign /v /a /n IDRIX /ac Thawt_CodeSigning_CA.crt /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt Setup 1.0f-1.exe"
+signtool sign /v /a /n IDRIX /ac Thawt_CodeSigning_CA.crt /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt Setup 1.0f-2.exe"
 
 pause
\ No newline at end of file
diff --git a/src/VeraCrypt.sln b/src/VeraCrypt.sln
index 25c7d3b..2dc9d10 100644
--- a/src/VeraCrypt.sln
+++ b/src/VeraCrypt.sln
@@ -1,23 +1,32 @@
 Microsoft Visual Studio Solution File, Format Version 10.00
 # Visual Studio 2008
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Crypto", "Crypto\Crypto.vcproj", "{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E} = {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Driver", "Driver\Driver.vcproj", "{EF5EF444-18D0-40D7-8DFA-775EC4448602}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E} = {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Format", "Format\Format.vcproj", "{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}"
 	ProjectSection(ProjectDependencies) = postProject
+		{EF5EF444-18D0-40D7-8DFA-775EC4448602} = {EF5EF444-18D0-40D7-8DFA-775EC4448602}
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E} = {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7} = {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mount", "Mount\Mount.vcproj", "{E4C40F94-E7F9-4981-86E4-186B46F993F3}"
 	ProjectSection(ProjectDependencies) = postProject
+		{EF5EF444-18D0-40D7-8DFA-775EC4448602} = {EF5EF444-18D0-40D7-8DFA-775EC4448602}
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E} = {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7} = {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Setup", "Setup\Setup.vcproj", "{DF5F654D-BD44-4E31-B92E-B68074DC37A8}"
 	ProjectSection(ProjectDependencies) = postProject
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827} = {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3} = {E4C40F94-E7F9-4981-86E4-186B46F993F3}
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E} = {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF} = {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}
@@ -25,12 +34,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Setup", "Setup\Setup.vcproj
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Boot", "Boot\Windows\Boot.vcproj", "{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExpandVolume", "ExpandVolume\ExpandVolume.vcproj", "{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}"
+	ProjectSection(ProjectDependencies) = postProject
+		{EF5EF444-18D0-40D7-8DFA-775EC4448602} = {EF5EF444-18D0-40D7-8DFA-775EC4448602}
+		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E} = {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		All Debug|Win32 = All Debug|Win32
 		All|Win32 = All|Win32
 		Boot Loader|Win32 = Boot Loader|Win32
 		Boot|Win32 = Boot|Win32
+		Debug|Win32 = Debug|Win32
 		Driver Debug|Win32 = Driver Debug|Win32
 		Driver x64 Debug|Win32 = Driver x64 Debug|Win32
 		Driver x64|Win32 = Driver x64|Win32
@@ -41,6 +57,7 @@ Global
 		Format|Win32 = Format|Win32
 		Mount Debug|Win32 = Mount Debug|Win32
 		Mount|Win32 = Mount|Win32
+		Release|Win32 = Release|Win32
 		Setup Debug|Win32 = Setup Debug|Win32
 		Setup|Win32 = Setup|Win32
 	EndGlobalSection
@@ -51,6 +68,8 @@ Global
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.All|Win32.Build.0 = Release|Win32
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot Loader|Win32.ActiveCfg = Release|Win32
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Boot|Win32.ActiveCfg = Release|Win32
+		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Debug|Win32.ActiveCfg = Debug|Win32
+		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Debug|Win32.Build.0 = Debug|Win32
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver Debug|Win32.ActiveCfg = Debug|Win32
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Driver x64|Win32.ActiveCfg = Release|Win32
@@ -65,6 +84,8 @@ Global
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount Debug|Win32.Build.0 = Debug|Win32
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|Win32.ActiveCfg = Release|Win32
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|Win32.Build.0 = Release|Win32
+		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|Win32.ActiveCfg = Release|Win32
+		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|Win32.Build.0 = Release|Win32
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup Debug|Win32.ActiveCfg = Debug|Win32
 		{993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup|Win32.ActiveCfg = Release|Win32
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.All Debug|Win32.ActiveCfg = Debug|Win32
@@ -73,6 +94,8 @@ Global
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.All|Win32.Build.0 = Release|Win32
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Boot Loader|Win32.ActiveCfg = Release|Win32
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Boot|Win32.ActiveCfg = Release|Win32
+		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Debug|Win32.Build.0 = Debug|Win32
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver Debug|Win32.ActiveCfg = Debug|Win32
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver Debug|Win32.Build.0 = Debug|Win32
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Driver x64 Debug|Win32.ActiveCfg = Debug x64|Win32
@@ -89,6 +112,8 @@ Global
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Format|Win32.ActiveCfg = Release|Win32
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount Debug|Win32.ActiveCfg = Debug|Win32
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount|Win32.ActiveCfg = Release|Win32
+		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Release|Win32.ActiveCfg = Release|Win32
+		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Release|Win32.Build.0 = Release|Win32
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Setup Debug|Win32.ActiveCfg = Debug|Win32
 		{EF5EF444-18D0-40D7-8DFA-775EC4448602}.Setup|Win32.ActiveCfg = Release|Win32
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All Debug|Win32.ActiveCfg = Debug|Win32
@@ -97,6 +122,8 @@ Global
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.All|Win32.Build.0 = Release|Win32
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot Loader|Win32.ActiveCfg = Release|Win32
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Boot|Win32.ActiveCfg = Release|Win32
+		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Debug|Win32.Build.0 = Debug|Win32
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver Debug|Win32.ActiveCfg = Debug|Win32
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Driver x64|Win32.ActiveCfg = Release|Win32
@@ -109,6 +136,8 @@ Global
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Format|Win32.Build.0 = Release|Win32
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount Debug|Win32.ActiveCfg = Debug|Win32
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount|Win32.ActiveCfg = Release|Win32
+		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|Win32.ActiveCfg = Release|Win32
+		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|Win32.Build.0 = Release|Win32
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup Debug|Win32.ActiveCfg = Debug|Win32
 		{9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup|Win32.ActiveCfg = Release|Win32
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.All Debug|Win32.ActiveCfg = Debug|Win32
@@ -117,6 +146,8 @@ Global
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.All|Win32.Build.0 = Release|Win32
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot Loader|Win32.ActiveCfg = Release|Win32
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Boot|Win32.ActiveCfg = Release|Win32
+		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Debug|Win32.ActiveCfg = Debug|Win32
+		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Debug|Win32.Build.0 = Debug|Win32
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver Debug|Win32.ActiveCfg = Debug|Win32
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Driver x64|Win32.ActiveCfg = Release|Win32
@@ -129,6 +160,8 @@ Global
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount Debug|Win32.Build.0 = Debug|Win32
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|Win32.ActiveCfg = Release|Win32
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|Win32.Build.0 = Release|Win32
+		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|Win32.ActiveCfg = Release|Win32
+		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|Win32.Build.0 = Release|Win32
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup Debug|Win32.ActiveCfg = Debug|Win32
 		{E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup|Win32.ActiveCfg = Release|Win32
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All Debug|Win32.ActiveCfg = Debug|Win32
@@ -137,6 +170,8 @@ Global
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All|Win32.Build.0 = Release|Win32
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot Loader|Win32.ActiveCfg = Release|Win32
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot|Win32.ActiveCfg = Release|Win32
+		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|Win32.ActiveCfg = Debug|Win32
+		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|Win32.Build.0 = Debug|Win32
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver Debug|Win32.ActiveCfg = Debug|Win32
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64|Win32.ActiveCfg = Release|Win32
@@ -147,6 +182,8 @@ Global
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format|Win32.ActiveCfg = Release|Win32
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|Win32.ActiveCfg = Debug|Win32
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|Win32.ActiveCfg = Release|Win32
+		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|Win32.ActiveCfg = Release|Win32
+		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|Win32.Build.0 = Release|Win32
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|Win32.ActiveCfg = Debug|Win32
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|Win32.Build.0 = Debug|Win32
 		{DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|Win32.ActiveCfg = Release|Win32
@@ -159,6 +196,8 @@ Global
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot Loader|Win32.Build.0 = Release Loader|Win32
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot|Win32.ActiveCfg = Release|Win32
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Boot|Win32.Build.0 = Release|Win32
+		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Debug|Win32.ActiveCfg = Release Loader|Win32
+		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Debug|Win32.Build.0 = Release Loader|Win32
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver Debug|Win32.ActiveCfg = Release|Win32
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x64 Debug|Win32.ActiveCfg = Release|Win32
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Driver x64|Win32.ActiveCfg = Release|Win32
@@ -169,8 +208,46 @@ Global
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Format|Win32.ActiveCfg = Release|Win32
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount Debug|Win32.ActiveCfg = Release|Win32
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount|Win32.ActiveCfg = Release|Win32
+		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Release|Win32.ActiveCfg = Release|Win32
+		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Release|Win32.Build.0 = Release|Win32
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Setup Debug|Win32.ActiveCfg = Release|Win32
 		{8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Setup|Win32.ActiveCfg = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All Debug|Win32.ActiveCfg = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All Debug|Win32.Build.0 = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All|Win32.ActiveCfg = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.All|Win32.Build.0 = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot Loader|Win32.ActiveCfg = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot Loader|Win32.Build.0 = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot|Win32.ActiveCfg = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Boot|Win32.Build.0 = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Debug|Win32.ActiveCfg = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Debug|Win32.Build.0 = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver Debug|Win32.ActiveCfg = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver Debug|Win32.Build.0 = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64 Debug|Win32.Build.0 = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64|Win32.ActiveCfg = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x64|Win32.Build.0 = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86 Debug|Win32.Build.0 = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86|Win32.ActiveCfg = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver x86|Win32.Build.0 = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver|Win32.ActiveCfg = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Driver|Win32.Build.0 = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format Debug|Win32.ActiveCfg = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format Debug|Win32.Build.0 = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format|Win32.ActiveCfg = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Format|Win32.Build.0 = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount Debug|Win32.ActiveCfg = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount Debug|Win32.Build.0 = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|Win32.ActiveCfg = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|Win32.Build.0 = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|Win32.ActiveCfg = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|Win32.Build.0 = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|Win32.ActiveCfg = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|Win32.Build.0 = Debug|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup|Win32.ActiveCfg = Release|Win32
+		{9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup|Win32.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/src/Volume/Hash.cpp b/src/Volume/Hash.cpp
index cc582b9..cba74b6 100644
--- a/src/Volume/Hash.cpp
+++ b/src/Volume/Hash.cpp
@@ -41,6 +41,7 @@ namespace VeraCrypt
 	// RIPEMD-160
 	Ripemd160::Ripemd160 ()
 	{
+		Deprecated = true; // Mark RIPEMD-160 as deprecated like on Windows.
 		Context.Allocate (sizeof (RMD160_CTX));
 		Init();
 	}
diff --git a/src/Volume/Volume.cpp b/src/Volume/Volume.cpp
index f1f248b..51ebf30 100755
--- a/src/Volume/Volume.cpp
+++ b/src/Volume/Volume.cpp
@@ -106,9 +106,6 @@ namespace VeraCrypt
 		if (kdf && truecryptMode && (kdf->GetName() == L"HMAC-SHA-256"))
 			throw UnsupportedAlgoInTrueCryptMode (SRC_POS);	
 
-		if (truecryptMode && partitionInSystemEncryptionScope)
-			throw ParameterIncorrect (SRC_POS);
-
 		Protection = protection;
 		VolumeFile = volumeFile;
 		SystemEncryption = partitionInSystemEncryptionScope;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-edu/pkg-team/veracrypt.git



More information about the debian-edu-commits mailing list