diff -r ae12edf69bce scripts/gui/errordlg.m
--- a/scripts/gui/errordlg.m	Wed Apr 08 09:37:59 2015 -0400
+++ b/scripts/gui/errordlg.m	Wed Apr 08 15:49:16 2015 +0100
@@ -19,6 +19,7 @@
 ## -*- texinfo -*-
 ## @deftypefn  {Function File} {@var{h} =} errordlg (@var{msg})
 ## @deftypefnx {Function File} {@var{h} =} errordlg (@var{msg}, @var{title})
+## @deftypefnx {Function File} {@var{h} =} errordlg (@var{msg}, @var{title}, @var{createmode})
 ## Display @var{msg} using an error dialog box.
 ##
 ## The message may have multiple lines separated by newline characters
@@ -30,13 +31,13 @@
 ## @seealso{helpdlg, inputdlg, listdlg, msgbox, questdlg, warndlg}
 ## @end deftypefn
 
-function retval = errordlg (msg, title = "Error Dialog")
+function retval = errordlg (msg, title = "Error Dialog", varargin)
 
-  if (nargin < 1 || nargin > 2)
+  if (nargin < 1 || nargin > 3)
     print_usage ();
   endif
 
-  retval = message_dialog ("errdlg", msg, title, "error");
+  retval = message_dialog ("errdlg", msg, title, "error", varargin{:});
 
 endfunction
 
diff -r ae12edf69bce scripts/gui/msgbox.m
--- a/scripts/gui/msgbox.m	Wed Apr 08 09:37:59 2015 -0400
+++ b/scripts/gui/msgbox.m	Wed Apr 08 15:49:16 2015 +0100
@@ -20,6 +20,7 @@
 ## @deftypefn  {Function File} {@var{h} =} msgbox (@var{msg})
 ## @deftypefnx {Function File} {@var{h} =} msgbox (@var{msg}, @var{title})
 ## @deftypefnx {Function File} {@var{h} =} msgbox (@var{msg}, @var{title}, @var{icon})
+## @deftypefnx {Function File} {@var{h} =} msgbox (@dots{},@var{createmode})
 ## Display @var{msg} using a message dialog box.
 ##
 ## The message may have multiple lines separated by newline characters
@@ -37,10 +38,10 @@
 
 function retval = msgbox (msg, title = "", varargin)
 
-  if (nargin < 1 || nargin > 3)
+  if (nargin < 1 || nargin > 4)
     print_usage ();
   endif
-
+  
   retval = message_dialog ("msgbox", msg, title, varargin{:});
 
 endfunction
diff -r ae12edf69bce scripts/gui/private/message_dialog.m
--- a/scripts/gui/private/message_dialog.m	Wed Apr 08 09:37:59 2015 -0400
+++ b/scripts/gui/private/message_dialog.m	Wed Apr 08 15:49:16 2015 +0100
@@ -17,11 +17,11 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {@var{h} =} message_dialog (@var{caller}, @var{msg}, @var{title}, @var{icon})
+## @deftypefn {Function File} {@var{h} =} message_dialog (@var{caller}, @var{msg}, @var{title}, @var{icon}, @var{createmode})
 ## Undocumented internal function.
 ## @end deftypefn
 
-function retval = message_dialog (caller, msg, title = "", icon)
+function retval = message_dialog (caller, msg, title = "", icon, createmode)
 
   if (! ischar (msg))
     if (iscell (msg))
@@ -47,6 +47,9 @@
         dlg = "warndlg";
       case "none"
         dlg = "emptydlg";
+      case "custom"
+        icon = "emptydlg";
+        warning ("%s: custom icons not yet supported", caller)
       otherwise
         error ("%s: ICON is not a valid type", caller);
     endswitch
@@ -54,6 +57,18 @@
     icon = "none";
   endif
 
+  if (nargin == 5)
+    if ((isstruct (createmode)) && (isfield (createmode, "WindowStyle")))
+      createmode = createmode.WindowStyle;
+    endif
+    switch (createmode)
+      case {"nonmodal", "non-modal", "modal", "replace"}
+        warning ("%s: %s is not yet supported", caller, createmode);
+      otherwise
+        error ("%s: CREATEMODE is not a valid type", caller);
+    endswitch
+  endif
+  
   if (__octave_link_enabled__ ())
     retval = __octave_link_message_dialog__ (icon, msg, title);
   elseif (__have_feature__ ("JAVA"))
diff -r ae12edf69bce scripts/gui/warndlg.m
--- a/scripts/gui/warndlg.m	Wed Apr 08 09:37:59 2015 -0400
+++ b/scripts/gui/warndlg.m	Wed Apr 08 15:49:16 2015 +0100
@@ -19,6 +19,7 @@
 ## -*- texinfo -*-
 ## @deftypefn  {Function File} {@var{h} =} warndlg (@var{msg})
 ## @deftypefnx {Function File} {@var{h} =} warndlg (@var{msg}, @var{title})
+## @deftypefnx {Function File} {@var{h} =} warndlg (@var{msg}, @var{title}, @var{createmode})
 ## Display @var{msg} using a warning dialog box.
 ##
 ## The message may have multiple lines separated by newline characters
@@ -26,16 +27,17 @@
 ## line.  The optional input @var{title} (character string) can be used to
 ## set the dialog caption.  The default title is @qcode{"Warning Dialog"}.
 ##
+## The return value is always 1.
 ## @seealso{helpdlg, inputdlg, listdlg, questdlg}
 ## @end deftypefn
 
-function retval = warndlg (msg, title = "Warning Dialog")
+function retval = warndlg (msg, title = "Warning Dialog", varargin)
 
-  if (nargin < 1 || nargin > 2)
+  if (nargin < 1 || nargin > 3)
     print_usage ();
   endif
 
-  retval = message_dialog ("warndlg", msg, title, "warn");
+  retval = message_dialog ("warndlg", msg, title, "warn", varargin{:});
 
 endfunction
 
