Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 73585)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 73586)
@@ -1688,4 +1688,11 @@
 }
 
+void UIMessageCenter::cannotCreateHardDiskStorageInFAT(const QString &strLocation, QWidget *pParent /* = 0 */) const
+{
+    error(pParent, MessageType_Error,
+          tr("Failed to create the hard disk storage <nobr><b>%1</b>.</nobr> FAT file systems has 4GB (minus some overhead) size limit")
+          .arg(strLocation), QString());
+}
+
 void UIMessageCenter::cannotCreateMediumStorage(const CVirtualBox &comVBox, const QString &strLocation, QWidget *pParent /* = 0 */) const
 {
@@ -2889,3 +2896,2 @@
     return iResultCode;
 }
-
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 73585)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 73586)
@@ -370,4 +370,5 @@
     void cannotCreateHardDiskStorage(const CMedium &medium, const QString &strLocation, QWidget *pParent = 0) const;
     void cannotCreateHardDiskStorage(const CProgress &progress, const QString &strLocation, QWidget *pParent = 0) const;
+    void cannotCreateHardDiskStorageInFAT(const QString &strLocation, QWidget *pParent = 0) const;
     void cannotCreateMediumStorage(const CVirtualBox &comVBox, const QString &strLocation, QWidget *pParent = 0) const;
     void cannotCreateMediumStorage(const CMedium &comMedium, const QString &strLocation, QWidget *pParent = 0) const;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVD.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVD.cpp	(revision 73585)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVD.cpp	(revision 73586)
@@ -151,3 +151,2 @@
     UIWizard::prepare();
 }
-
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.cpp	(revision 73585)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.cpp	(revision 73586)
@@ -48,4 +48,6 @@
 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
 
+/* Other VBox includes: */
+#include <iprt/path.h>
 
 UIWizardNewVDPage3::UIWizardNewVDPage3(const QString &strDefaultName, const QString &strDefaultPath)
@@ -262,4 +264,9 @@
 
     if (fResult)
+        fResult = checkFATSizeLimitation();
+
+    if (!fResult)
+        msgCenter().cannotCreateHardDiskStorageInFAT(strMediumPath, this);
+    else
     {
         /* Lock finish button: */
@@ -268,6 +275,5 @@
         /* Try to create virtual hard drive file: */
         fResult = qobject_cast<UIWizardNewVD*>(wizard())->createVirtualDisk();
-
-        /* Unlock finish button: */
+       /* Unlock finish button: */
         endProcessing();
     }
@@ -277,2 +283,19 @@
 }
 
+bool UIWizardNewVDPage3::checkFATSizeLimitation()
+{
+    QString strMediumPath(mediumPath());
+    RTFSTYPE enmType;
+    int rc = RTFsQueryType(QFileInfo(strMediumPath).absolutePath().toLatin1().constData(), &enmType);
+    if (RT_SUCCESS(rc))
+    {
+        if (enmType == RTFSTYPE_FAT)
+        {
+            /* Limit the medium size to 4GB. minus 128 MB for file overhead: */
+            qulonglong fatLimit = 4 * pow(2,30) - 128 * pow(2, 20);
+            if (mediumSize() >= fatLimit)
+                return false;
+        }
+    }
+    return true;
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.h	(revision 73585)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.h	(revision 73586)
@@ -45,4 +45,7 @@
     static QString absoluteFilePath(const QString &strFileName, const QString &strDefaultPath);
     static QString defaultExtension(const CMediumFormat &mediumFormatRef);
+
+    /* Checks if the medium file is bigger than what is allowed in FAT file systems. */
+    bool checkFATSizeLimitation();
 
     /* Stuff for 'mediumPath' field: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.cpp	(revision 73585)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.cpp	(revision 73586)
@@ -269,4 +269,10 @@
         msgCenter().cannotOverwriteHardDiskStorage(strMediumPath, this);
 
+    if (fResult)
+        fResult = checkFATSizeLimitation();
+
+    if (!fResult)
+        msgCenter().cannotCreateHardDiskStorageInFAT(strMediumPath, this);
+
     /* Try to create virtual-disk: */
     if (fResult)
@@ -279,3 +285,2 @@
     return fResult;
 }
-
