diff --git a/ide/fpide.pas b/ide/fpide.pas
index 0dac2b62ad..136afd5733 100644
--- a/ide/fpide.pas
+++ b/ide/fpide.pas
@@ -167,7 +167,7 @@ uses
   Video,Mouse,Keyboard,
   Compiler,Version,
   FVConsts,
-  Dos,Memory,Menus,Dialogs,StdDlg,
+  Dos,Memory,Menus,Dialogs,StdDlg,timeddlg,
   Systems,
   WUtils,WHlpView,WViews,WHTMLHlp,WHelp,WConsole,
   FPConst,FPVars,FPUtils,FPSwitch,FPIni,FPIntf,FPCompil,FPHelp,
@@ -1241,7 +1241,10 @@ end;
 END.
 {
   $Log$
-  Revision 1.33  2004-11-20 14:21:19  florian
+  Revision 1.34  2004-12-19 20:38:35  hajny
+    + confirmation box after video mode switch (bug 2933)
+
+  Revision 1.33  2004/11/20 14:21:19  florian
     * implemented reload menu item
     * increased file history to 9 files
 
diff --git a/ide/fpmopts.inc b/ide/fpmopts.inc
index 914c2038e2..22e645c2fd 100644
--- a/ide/fpmopts.inc
+++ b/ide/fpmopts.inc
@@ -889,7 +889,16 @@ begin
                  ScreenModeInfo[3]:=byte(VM.color);
 
                  ErrorBox(msg_cantsetscreenmode,@ScreenModeInfo);
-               end;
+               end
+             else
+               if TimedMessageBox (msg_confirmnewscreenmode, nil,
+                              mfConfirmation or mfOKCancel, 15) = cmCancel then
+                begin
+                 SetScreenVideoMode (OldScreenMode);
+                 ScreenModeInfo [1] := VM.Col;
+                 ScreenModeInfo [2] := VM.Row;
+                 ScreenModeInfo [3] := byte (VM.Color);
+                end;
            End;
        end;
      AutoSaveOptions:=CB1^.Value;
@@ -1367,7 +1376,10 @@ end;
 
 {
   $Log$
-  Revision 1.12  2004-11-08 20:28:26  peter
+  Revision 1.13  2004-12-19 20:38:35  hajny
+    + confirmation box after video mode switch (bug 2933)
+
+  Revision 1.12  2004/11/08 20:28:26  peter
     * Breakpoints are now deleted when removed from source, disabling is
       still possible from the breakpoint list
     * COMPILER_1_0, FVISION, GABOR defines removed, only support new
diff --git a/ide/fpstre.inc b/ide/fpstre.inc
index 3129a0eb92..af4f656e6c 100644
--- a/ide/fpstre.inc
+++ b/ide/fpstre.inc
@@ -605,6 +605,8 @@ const
 
       msg_userscreennotavailable = 'Sorry, user screen not available.';
       msg_cantsetscreenmode = #3'Impossible to set'#13#3'%dx%d mode';
+      msg_confirmnewscreenmode = 'Please, confirm that new mode'#13 +
+                                 'is displayed correctly';
       { Tools $PROMPT() dialog }
       dialog_programarguments = 'Program Arguments';
       label_enterprogramargument = '~E~nter program argument';
@@ -1058,7 +1060,10 @@ const
 
 {
   $Log$
-  Revision 1.24  2004-11-21 20:53:26  peter
+  Revision 1.25  2004-12-19 20:38:35  hajny
+    + confirmation box after video mode switch (bug 2933)
+
+  Revision 1.24  2004/11/21 20:53:26  peter
     * fixed breakpoint dialog
 
   Revision 1.23  2004/11/20 14:21:19  florian