diff --git a/MagickCore/MagickCore.h b/MagickCore/MagickCore.h
index 873148e..bfa269c 100644
--- a/MagickCore/MagickCore.h
+++ b/MagickCore/MagickCore.h
@@ -140,6 +140,7 @@
 # include "MagickCore/methods.h"
 #endif
 #include "MagickCore/magick-type.h"
+#include "MagickCore/xwindow.h"
 #include "MagickCore/accelerate.h"
 #include "MagickCore/animate.h"
 #include "MagickCore/annotate.h"
@@ -220,7 +221,6 @@
 #include "MagickCore/utility.h"
 #include "MagickCore/version.h"
 #include "MagickCore/xml-tree.h"
-#include "MagickCore/xwindow.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/MagickCore/Makefile.am b/MagickCore/Makefile.am
index 8a4610e..783beea 100644
--- a/MagickCore/Makefile.am
+++ b/MagickCore/Makefile.am
@@ -256,6 +256,7 @@
 	MagickCore/vms.h \
 	MagickCore/widget.c \
 	MagickCore/widget.h \
+	MagickCore/widget-private.h \
 	MagickCore/xml-tree.c \
 	MagickCore/xml-tree.h \
 	MagickCore/xwindow.c \
@@ -424,6 +425,7 @@
 	MagickCore/token-private.h \
  	MagickCore/type-private.h \
 	MagickCore/vms.h \
+ 	MagickCore/widget-private.h \
 	MagickCore/xwindow-private.h
 
 MAGICKCORE_EXTRA_DIST = \
diff --git a/MagickCore/animate.c b/MagickCore/animate.c
index a764713..c73ec1f 100644
--- a/MagickCore/animate.c
+++ b/MagickCore/animate.c
@@ -69,6 +69,8 @@
 #include "MagickCore/utility.h"
 #include "MagickCore/version.h"
 #include "MagickCore/widget.h"
+#include "MagickCore/widget-private.h"
+#include "MagickCore/xwindow.h"
 #include "MagickCore/xwindow-private.h"
 
 #if defined(MAGICKCORE_X11_DELEGATE)
diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c
index 319000d..c141379 100644
--- a/MagickCore/annotate.c
+++ b/MagickCore/annotate.c
@@ -73,6 +73,7 @@
 #include "MagickCore/transform.h"
 #include "MagickCore/type.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/xwindow.h"
 #include "MagickCore/xwindow-private.h"
 #if defined(MAGICKCORE_FREETYPE_DELEGATE)
 #if defined(__MINGW32__)
diff --git a/MagickCore/display.c b/MagickCore/display.c
index 85c4583..d0308b2 100644
--- a/MagickCore/display.c
+++ b/MagickCore/display.c
@@ -87,6 +87,8 @@
 #include "MagickCore/utility.h"
 #include "MagickCore/version.h"
 #include "MagickCore/widget.h"
+#include "MagickCore/widget-private.h"
+#include "MagickCore/xwindow.h"
 #include "MagickCore/xwindow-private.h"
 
 #if defined(MAGICKCORE_X11_DELEGATE)
diff --git a/MagickCore/widget-private.h b/MagickCore/widget-private.h
new file mode 100644
index 0000000..30fcf00
--- /dev/null
+++ b/MagickCore/widget-private.h
@@ -0,0 +1,58 @@
+/*
+  Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization
+  dedicated to making software imaging solutions freely available.
+  
+  You may not use this file except in compliance with the License.
+  obtain a copy of the License at
+  
+    http://www.imagemagick.org/script/license.php
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+  MagickCore private X11 widget methods.
+*/
+#ifndef _MAGICKCORE_WIDGET_PRIVATE_H
+#define _MAGICKCORE_WIDGET_PRIVATE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+#if defined(MAGICKCORE_X11_DELEGATE)
+
+#include "MagickCore/xwindow-private.h"
+
+extern MagickPrivate int
+  XCommandWidget(Display *,XWindows *,const char **,XEvent *),
+  XConfirmWidget(Display *,XWindows *,const char *,const char *),
+  XDialogWidget(Display *,XWindows *,const char *,const char *,char *),
+  XMenuWidget(Display *,XWindows *,const char *,const char **,char *);
+
+extern MagickPrivate MagickBooleanType
+  XPreferencesWidget(Display *,XResourceInfo *,XWindows *);
+
+extern MagickPrivate void
+  DestroyXWidget(void),
+  XColorBrowserWidget(Display *,XWindows *,const char *,char *),
+  XFileBrowserWidget(Display *,XWindows *,const char *,char *),
+  XFontBrowserWidget(Display *,XWindows *,const char *,char *),
+  XInfoWidget(Display *,XWindows *,const char *),
+  XListBrowserWidget(Display *,XWindows *,XWindowInfo *,const char **,
+    const char *,const char *,char *),
+  XNoticeWidget(Display *,XWindows *,const char *,const char *),
+  XProgressMonitorWidget(Display *,XWindows *,const char *,
+    const MagickOffsetType,const MagickSizeType),
+  XTextViewWidget(Display *,const XResourceInfo *,XWindows *,
+    const MagickBooleanType,const char *,const char **);
+
+#endif
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif
diff --git a/MagickCore/widget.c b/MagickCore/widget.c
index 9d77007..6d745d1 100644
--- a/MagickCore/widget.c
+++ b/MagickCore/widget.c
@@ -54,6 +54,7 @@
 #include "MagickCore/utility.h"
 #include "MagickCore/xwindow-private.h"
 #include "MagickCore/widget.h"
+#include "MagickCore/widget-private.h"
 
 #if defined(MAGICKCORE_X11_DELEGATE)
 
@@ -184,7 +185,7 @@
 %  A description of each parameter follows:
 %
 */
-MagickExport void DestroyXWidget(void)
+MagickPrivate void DestroyXWidget(void)
 {
   if (selection_info != (XWidgetInfo *) NULL)
     selection_info=(XWidgetInfo *) RelinquishMagickMemory(selection_info);
@@ -1615,7 +1616,7 @@
 %    o reply: the response from the user is returned in this parameter.
 %
 */
-MagickExport void XColorBrowserWidget(Display *display,XWindows *windows,
+MagickPrivate void XColorBrowserWidget(Display *display,XWindows *windows,
   const char *action,char *reply)
 {
 #define CancelButtonText  "Cancel"
@@ -2806,7 +2807,7 @@
 %    o event: Specifies a pointer to a X11 XEvent structure.
 %
 */
-MagickExport int XCommandWidget(Display *display,XWindows *windows,
+MagickPrivate int XCommandWidget(Display *display,XWindows *windows,
   const char **selections,XEvent *event)
 {
 #define tile_width 112
@@ -3232,7 +3233,7 @@
 %    o description: Specifies any description to the message.
 %
 */
-MagickExport int XConfirmWidget(Display *display,XWindows *windows,
+MagickPrivate int XConfirmWidget(Display *display,XWindows *windows,
   const char *reason,const char *description)
 {
 #define CancelButtonText  "Cancel"
@@ -3640,7 +3641,7 @@
 %    o reply: the response from the user is returned in this parameter.
 %
 */
-MagickExport int XDialogWidget(Display *display,XWindows *windows,
+MagickPrivate int XDialogWidget(Display *display,XWindows *windows,
   const char *action,const char *query,char *reply)
 {
 #define CancelButtonText  "Cancel"
@@ -4215,7 +4216,7 @@
 %    o reply: the response from the user is returned in this parameter.
 %
 */
-MagickExport void XFileBrowserWidget(Display *display,XWindows *windows,
+MagickPrivate void XFileBrowserWidget(Display *display,XWindows *windows,
   const char *action,char *reply)
 {
 #define CancelButtonText  "Cancel"
@@ -5474,7 +5475,7 @@
 }
 #endif
 
-MagickExport void XFontBrowserWidget(Display *display,XWindows *windows,
+MagickPrivate void XFontBrowserWidget(Display *display,XWindows *windows,
   const char *action,char *reply)
 {
 #define BackButtonText  "Back"
@@ -6651,7 +6652,7 @@
 %      displayed in the Info widget.
 %
 */
-MagickExport void XInfoWidget(Display *display,XWindows *windows,
+MagickPrivate void XInfoWidget(Display *display,XWindows *windows,
   const char *activity)
 {
   unsigned int
@@ -6752,7 +6753,7 @@
 %    o reply: the response from the user is returned in this parameter.
 %
 */
-MagickExport void XListBrowserWidget(Display *display,XWindows *windows,
+MagickPrivate void XListBrowserWidget(Display *display,XWindows *windows,
   XWindowInfo *window_info,const char **list,const char *action,
   const char *query,char *reply)
 {
@@ -7663,7 +7664,7 @@
 %      is returned here.
 %
 */
-MagickExport int XMenuWidget(Display *display,XWindows *windows,
+MagickPrivate int XMenuWidget(Display *display,XWindows *windows,
   const char *title,const char **selections,char *item)
 {
   Cursor
@@ -8093,7 +8094,7 @@
 %    o description: Specifies any description to the message.
 %
 */
-MagickExport void XNoticeWidget(Display *display,XWindows *windows,
+MagickPrivate void XNoticeWidget(Display *display,XWindows *windows,
   const char *reason,const char *description)
 {
 #define DismissButtonText  "Dismiss"
@@ -8422,7 +8423,7 @@
 %    o window: Specifies a pointer to a XWindows structure.
 %
 */
-MagickExport MagickBooleanType XPreferencesWidget(Display *display,
+MagickPrivate MagickBooleanType XPreferencesWidget(Display *display,
   XResourceInfo *resource_info,XWindows *windows)
 {
 #define ApplyButtonText  "Apply"
@@ -8880,7 +8881,7 @@
 %    o span: Specifies the span relative to completing a task.
 %
 */
-MagickExport void XProgressMonitorWidget(Display *display,XWindows *windows,
+MagickPrivate void XProgressMonitorWidget(Display *display,XWindows *windows,
   const char *task,const MagickOffsetType offset,const MagickSizeType span)
 {
   unsigned int
@@ -8959,7 +8960,7 @@
 %    o textlist: This string list is displayed within the Text View widget.
 %
 */
-MagickExport void XTextViewWidget(Display *display,
+MagickPrivate void XTextViewWidget(Display *display,
   const XResourceInfo *resource_info,XWindows *windows,
   const MagickBooleanType mono,const char *title,const char **textlist)
 {
diff --git a/MagickCore/widget.h b/MagickCore/widget.h
index bcfced2..f57750b 100644
--- a/MagickCore/widget.h
+++ b/MagickCore/widget.h
@@ -22,35 +22,6 @@
 extern "C" {
 #endif
 
-#if defined(MAGICKCORE_X11_DELEGATE)
-
-#include "MagickCore/xwindow-private.h"
-
-extern MagickExport int
-  XCommandWidget(Display *,XWindows *,const char **,XEvent *),
-  XConfirmWidget(Display *,XWindows *,const char *,const char *),
-  XDialogWidget(Display *,XWindows *,const char *,const char *,char *),
-  XMenuWidget(Display *,XWindows *,const char *,const char **,char *);
-
-extern MagickExport MagickBooleanType
-  XPreferencesWidget(Display *,XResourceInfo *,XWindows *);
-
-extern MagickExport void
-  DestroyXWidget(void),
-  XColorBrowserWidget(Display *,XWindows *,const char *,char *),
-  XFileBrowserWidget(Display *,XWindows *,const char *,char *),
-  XFontBrowserWidget(Display *,XWindows *,const char *,char *),
-  XInfoWidget(Display *,XWindows *,const char *),
-  XListBrowserWidget(Display *,XWindows *,XWindowInfo *,const char **,
-    const char *,const char *,char *),
-  XNoticeWidget(Display *,XWindows *,const char *,const char *),
-  XProgressMonitorWidget(Display *,XWindows *,const char *,
-    const MagickOffsetType,const MagickSizeType),
-  XTextViewWidget(Display *,const XResourceInfo *,XWindows *,
-    const MagickBooleanType,const char *,const char **);
-
-#endif
-
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif
diff --git a/MagickCore/xwindow-private.h b/MagickCore/xwindow-private.h
index 0a9a411..f70810a 100644
--- a/MagickCore/xwindow-private.h
+++ b/MagickCore/xwindow-private.h
@@ -161,6 +161,16 @@
     geometry[MaxTextExtent];
 } XDrawInfo;
 
+typedef struct _XImportInfo
+{
+  MagickBooleanType
+    frame,
+    borders,
+    screen,
+    descend,
+    silent;
+} XImportInfo;
+
 typedef enum
 {
   DefaultState = 0x0000,
@@ -505,43 +515,33 @@
     dnd_protocols;
 } XWindows;
 
-extern MagickExport char
-  *XGetResourceClass(XrmDatabase,const char *,const char *,char *),
-  *XGetResourceInstance(XrmDatabase,const char *,const char *,const char *),
-  *XGetScreenDensity(Display *);
-
-extern MagickExport Cursor
+extern MagickPrivate Cursor
   XMakeCursor(Display *,Window,Colormap,char *,char *);
 
-extern MagickExport int
-  XCheckDefineCursor(Display *,Window,Cursor),
-  XError(Display *,XErrorEvent *);
+extern MagickPrivate int
+  XCheckDefineCursor(Display *,Window,Cursor);
 
-extern MagickExport MagickBooleanType
+extern MagickPrivate MagickBooleanType
   XAnnotateImage(Display *,const XPixelInfo *,XAnnotateInfo *,Image *),
+  XComponentGenesis(void),
   XDrawImage(Display *,const XPixelInfo *,XDrawInfo *,Image *),
   XGetWindowColor(Display *,XWindows *,char *),
   XMagickProgressMonitor(const char *,const MagickOffsetType,
     const MagickSizeType,void *),
   XMakeImage(Display *,const XResourceInfo *,XWindowInfo *,Image *,unsigned int,
     unsigned int,ExceptionInfo *),
-  XQueryColorDatabase(const char *,XColor *),
-  XRemoteCommand(Display *,const char *,const char *);
+  XQueryColorDatabase(const char *,XColor *);
 
-extern MagickPrivate MagickBooleanType
-  XComponentGenesis(void);
-
-extern MagickExport void
-  DestroyXResources(void),
+extern MagickPrivate void
   XBestIconSize(Display *,XWindowInfo *,Image *),
   XBestPixel(Display *,const Colormap,XColor *,unsigned int,XColor *),
   XCheckRefreshWindows(Display *,XWindows *),
   XClientMessage(Display *,const Window,const Atom,const Atom,const Time),
+  XComponentTerminus(void),
   XConfigureImageColormap(Display *,XResourceInfo *,XWindows *,Image *),
   XConstrainWindowPosition(Display *,XWindowInfo *),
   XDelay(Display *,const size_t),
   XDisplayImageInfo(Display *,const XResourceInfo *,XWindows *,Image *,Image *),
-  XDestroyResourceInfo(XResourceInfo *),
   XDestroyWindowColors(Display *,Window),
   XFreeResources(Display *,XVisualInfo *,XStandardColormap *,XPixelInfo *,
     XFontStruct *,XResourceInfo *,XWindowInfo *),
@@ -554,7 +554,6 @@
   XGetPixelInfo(Display *,const XVisualInfo *,const XStandardColormap *,
     const XResourceInfo *,Image *,XPixelInfo *),
   XGetMapInfo(const XVisualInfo *,const Colormap,XStandardColormap *),
-  XGetResourceInfo(const ImageInfo *,XrmDatabase,const char *,XResourceInfo *),
   XGetWindowInfo(Display *,XVisualInfo *,XStandardColormap *,XPixelInfo *,
     XFontStruct *,XResourceInfo *,XWindowInfo *),
   XMakeMagnifyImage(Display *,XWindows *),
@@ -564,29 +563,22 @@
     XWindowInfo *),
   XQueryPosition(Display *,const Window,int *,int *),
   XRefreshWindow(Display *,const XWindowInfo *,const XEvent *),
-  XRetainWindowColors(Display *,const Window),
   XSetCursorState(Display *,XWindows *,const MagickStatusType),
   XUserPreferences(XResourceInfo *),
   XWarning(const ExceptionType,const char *,const char *);
 
-extern MagickPrivate void
-  XComponentTerminus(void);
-
-extern MagickExport Window
+extern MagickPrivate Window
   XWindowByID(Display *,const Window,const size_t),
   XWindowByName(Display *,const Window,const char *),
   XWindowByProperty(Display *,const Window,const Atom);
 
-extern MagickExport XFontStruct
+extern MagickPrivate XFontStruct
   *XBestFont(Display *,const XResourceInfo *,const MagickBooleanType);
 
-extern MagickExport XrmDatabase
-  XGetResourceDatabase(Display *,const char *);
-
-extern MagickExport XVisualInfo
+extern MagickPrivate XVisualInfo
   *XBestVisualInfo(Display *,XStandardColormap *,XResourceInfo *);
 
-extern MagickExport XWindows
+extern MagickPrivate XWindows
   *XInitializeWindows(Display *,XResourceInfo *),
   *XSetWindows(XWindows *);
 
diff --git a/MagickCore/xwindow.c b/MagickCore/xwindow.c
index 4fe0de2..262f521 100644
--- a/MagickCore/xwindow.c
+++ b/MagickCore/xwindow.c
@@ -77,6 +77,7 @@
 #include "MagickCore/transform.h"
 #include "MagickCore/utility.h"
 #include "MagickCore/widget.h"
+#include "MagickCore/widget-private.h"
 #include "MagickCore/xwindow.h"
 #include "MagickCore/xwindow-private.h"
 #include "MagickCore/version.h"
@@ -452,7 +453,7 @@
 %    o image: the image.
 %
 */
-MagickExport MagickBooleanType XAnnotateImage(Display *display,
+MagickPrivate MagickBooleanType XAnnotateImage(Display *display,
   const XPixelInfo *pixel,XAnnotateInfo *annotate_info,Image *image)
 {
   CacheView
@@ -781,7 +782,7 @@
   return(fontlist);
 }
 
-MagickExport XFontStruct *XBestFont(Display *display,
+MagickPrivate XFontStruct *XBestFont(Display *display,
   const XResourceInfo *resource_info,const MagickBooleanType text_font)
 {
   static const char
@@ -889,7 +890,7 @@
 %    o image: the image.
 %
 */
-MagickExport void XBestIconSize(Display *display,XWindowInfo *window,
+MagickPrivate void XBestIconSize(Display *display,XWindowInfo *window,
   Image *image)
 {
   int
@@ -1017,7 +1018,7 @@
 %    o color: Specifies the desired RGB value to find in the colors array.
 %
 */
-MagickExport void XBestPixel(Display *display,const Colormap colormap,
+MagickPrivate void XBestPixel(Display *display,const Colormap colormap,
   XColor *colors,unsigned int number_colors,XColor *color)
 {
   MagickBooleanType
@@ -1154,7 +1155,7 @@
   return(y);
 }
 
-MagickExport XVisualInfo *XBestVisualInfo(Display *display,
+MagickPrivate XVisualInfo *XBestVisualInfo(Display *display,
   XStandardColormap *map_info,XResourceInfo *resource_info)
 {
 #define MaxStandardColormaps  7
@@ -1460,7 +1461,7 @@
 %    o cursor: the cursor.
 %
 */
-MagickExport int XCheckDefineCursor(Display *display,Window window,
+MagickPrivate int XCheckDefineCursor(Display *display,Window window,
   Cursor cursor)
 {
   (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
@@ -1496,7 +1497,7 @@
 %    o windows: Specifies a pointer to a XWindows structure.
 %
 */
-MagickExport void XCheckRefreshWindows(Display *display,XWindows *windows)
+MagickPrivate void XCheckRefreshWindows(Display *display,XWindows *windows)
 {
   Window
     id;
@@ -1555,7 +1556,7 @@
 %    o timestamp: Specifies a value of type Time.
 %
 */
-MagickExport void XClientMessage(Display *display,const Window window,
+MagickPrivate void XClientMessage(Display *display,const Window window,
   const Atom protocol,const Atom reason,const Time timestamp)
 {
   XClientMessageEvent
@@ -1693,7 +1694,7 @@
 %    o image: the image.
 %
 */
-MagickExport void XConfigureImageColormap(Display *display,
+MagickPrivate void XConfigureImageColormap(Display *display,
   XResourceInfo *resource_info,XWindows *windows,Image *image)
 {
   Colormap
@@ -1745,7 +1746,7 @@
 %    o window_info: Specifies a pointer to a XWindowInfo structure.
 %
 */
-MagickExport void XConstrainWindowPosition(Display *display,
+MagickPrivate void XConstrainWindowPosition(Display *display,
   XWindowInfo *window_info)
 {
   int
@@ -1795,7 +1796,7 @@
 %      returning.
 %
 */
-MagickExport void XDelay(Display *display,const size_t milliseconds)
+MagickPrivate void XDelay(Display *display,const size_t milliseconds)
 {
   assert(display != (Display *) NULL);
   (void) XFlush(display);
@@ -1867,7 +1868,7 @@
 %    o window: Specifies a pointer to a Window structure.
 %
 */
-MagickExport void XDestroyWindowColors(Display *display,Window window)
+MagickPrivate void XDestroyWindowColors(Display *display,Window window)
 {
   Atom
     property,
@@ -1944,7 +1945,7 @@
 %    o image: the image.
 %
 */
-MagickExport void XDisplayImageInfo(Display *display,
+MagickPrivate void XDisplayImageInfo(Display *display,
   const XResourceInfo *resource_info,XWindows *windows,Image *undo_image,
   Image *image)
 {
@@ -2282,7 +2283,7 @@
 %    o image: the image.
 %
 */
-MagickExport MagickBooleanType XDrawImage(Display *display,
+MagickPrivate MagickBooleanType XDrawImage(Display *display,
   const XPixelInfo *pixel,XDrawInfo *draw_info,Image *image)
 {
   CacheView
@@ -2644,12 +2645,12 @@
 %
 %  XError() ignores BadWindow errors for XQueryTree and XGetWindowAttributes,
 %  and ignores BadDrawable errors for XGetGeometry, and ignores BadValue errors
-%  for XQueryColor.  It returns MagickFalse in those cases.  Otherwise it returns
-%  True.
+%  for XQueryColor.  It returns MagickFalse in those cases.  Otherwise it
+%  returns True.
 %
 %  The format of the XError function is:
 %
-%      XError(display,error)
+%      int XError(display,error)
 %
 %  A description of each parameter follows:
 %
@@ -2739,7 +2740,7 @@
 %    o window_info: Specifies a pointer to a X11 XWindowInfo structure.
 %
 */
-MagickExport void XFreeResources(Display *display,XVisualInfo *visual_info,
+MagickPrivate void XFreeResources(Display *display,XVisualInfo *visual_info,
   XStandardColormap *map_info,XPixelInfo *pixel,XFontStruct *font_info,
   XResourceInfo *resource_info,XWindowInfo *window_info)
 {
@@ -2833,7 +2834,7 @@
 %    o pixel: Specifies a pointer to a XPixelInfo structure.
 %
 */
-MagickExport void XFreeStandardColormap(Display *display,
+MagickPrivate void XFreeStandardColormap(Display *display,
   const XVisualInfo *visual_info,XStandardColormap *map_info,XPixelInfo *pixel)
 {
   /*
@@ -2886,7 +2887,7 @@
 %    o annotate_info: Specifies a pointer to a XAnnotateInfo structure.
 %
 */
-MagickExport void XGetAnnotateInfo(XAnnotateInfo *annotate_info)
+MagickPrivate void XGetAnnotateInfo(XAnnotateInfo *annotate_info)
 {
   /*
     Initialize annotate structure.
@@ -2936,7 +2937,7 @@
 %    o map_info: Specifies a pointer to a X11 XStandardColormap structure.
 %
 */
-MagickExport void XGetMapInfo(const XVisualInfo *visual_info,
+MagickPrivate void XGetMapInfo(const XVisualInfo *visual_info,
   const Colormap colormap,XStandardColormap *map_info)
 {
   /*
@@ -3011,7 +3012,7 @@
 %    o pixel: Specifies a pointer to a XPixelInfo structure.
 %
 */
-MagickExport void XGetPixelInfo(Display *display,
+MagickPrivate void XGetPixelInfo(Display *display,
   const XVisualInfo *visual_info,const XStandardColormap *map_info,
   const XResourceInfo *resource_info,Image *image,XPixelInfo *pixel)
 {
@@ -3831,7 +3832,7 @@
 %      returned in this character string.
 %
 */
-MagickExport MagickBooleanType XGetWindowColor(Display *display,
+MagickPrivate MagickBooleanType XGetWindowColor(Display *display,
   XWindows *windows,char *name)
 {
   int
@@ -4563,7 +4564,7 @@
 %    o resource_info: Specifies a pointer to a X11 XResourceInfo structure.
 %
 */
-MagickExport void XGetWindowInfo(Display *display,XVisualInfo *visual_info,
+MagickPrivate void XGetWindowInfo(Display *display,XVisualInfo *visual_info,
   XStandardColormap *map_info,XPixelInfo *pixel,XFontStruct *font_info,
   XResourceInfo *resource_info,XWindowInfo *window)
 {
@@ -4713,7 +4714,7 @@
 %      contains the extents of any highlighting rectangle.
 %
 */
-MagickExport void XHighlightEllipse(Display *display,Window window,
+MagickPrivate void XHighlightEllipse(Display *display,Window window,
   GC annotate_context,const RectangleInfo *highlight_info)
 {
   (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
@@ -4763,7 +4764,7 @@
 %      contains the extents of any highlighting rectangle.
 %
 */
-MagickExport void XHighlightLine(Display *display,Window window,
+MagickPrivate void XHighlightLine(Display *display,Window window,
   GC annotate_context,const XSegment *highlight_info)
 {
   (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
@@ -4807,7 +4808,7 @@
 %      contains the extents of any highlighting rectangle.
 %
 */
-MagickExport void XHighlightRectangle(Display *display,Window window,
+MagickPrivate void XHighlightRectangle(Display *display,Window window,
   GC annotate_context,const RectangleInfo *highlight_info)
 {
   assert(display != (Display *) NULL);
@@ -5122,7 +5123,7 @@
 %    o resource_info: Specifies a pointer to a X11 XResourceInfo structure.
 %
 */
-MagickExport XWindows *XInitializeWindows(Display *display,
+MagickPrivate XWindows *XInitializeWindows(Display *display,
   XResourceInfo *resource_info)
 {
   Window
@@ -5319,7 +5320,7 @@
 %    o foreground_color: Specifies the color to use for the cursor foreground.
 %
 */
-MagickExport Cursor XMakeCursor(Display *display,Window window,
+MagickPrivate Cursor XMakeCursor(Display *display,Window window,
   Colormap colormap,char *background_color,char *foreground_color)
 {
 #define scope_height 17
@@ -5420,7 +5421,7 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
-MagickExport MagickBooleanType XMakeImage(Display *display,
+MagickPrivate MagickBooleanType XMakeImage(Display *display,
   const XResourceInfo *resource_info,XWindowInfo *window,Image *image,
   unsigned int width,unsigned int height,ExceptionInfo *exception)
 {
@@ -7086,7 +7087,7 @@
 %    o windows: Specifies a pointer to a XWindows structure.
 %
 */
-MagickExport void XMakeMagnifyImage(Display *display,XWindows *windows)
+MagickPrivate void XMakeMagnifyImage(Display *display,XWindows *windows)
 {
   char
     tuple[MaxTextExtent];
@@ -7706,7 +7707,7 @@
   return((Quantum) (((MagickRealType) QuantumRange*x)/scale+0.5));
 }
 
-MagickExport void XMakeStandardColormap(Display *display,
+MagickPrivate void XMakeStandardColormap(Display *display,
   XVisualInfo *visual_info,XResourceInfo *resource_info,Image *image,
   XStandardColormap *map_info,XPixelInfo *pixel)
 {
@@ -8322,7 +8323,7 @@
 %    o window_info: Specifies a pointer to a X11 XWindowInfo structure.
 %
 */
-MagickExport void XMakeWindow(Display *display,Window parent,char **argv,
+MagickPrivate void XMakeWindow(Display *display,Window parent,char **argv,
   int argc,XClassHint *class_hint,XWMHints *manager_hints,
   XWindowInfo *window_info)
 {
@@ -8599,7 +8600,7 @@
   return(locale_message);
 }
 
-MagickExport MagickBooleanType XMagickProgressMonitor(const char *tag,
+MagickPrivate MagickBooleanType XMagickProgressMonitor(const char *tag,
   const MagickOffsetType quantum,const MagickSizeType span,
   void *magick_unused(client_data))
 {
@@ -8641,7 +8642,7 @@
 %      color is returned as this value.
 %
 */
-MagickExport MagickBooleanType XQueryColorDatabase(const char *target,
+MagickPrivate MagickBooleanType XQueryColorDatabase(const char *target,
   XColor *color)
 {
   Colormap
@@ -8721,7 +8722,7 @@
 %      window.
 %
 */
-MagickExport void XQueryPosition(Display *display,const Window window,int *x,int *y)
+MagickPrivate void XQueryPosition(Display *display,const Window window,int *x,int *y)
 {
   int
     x_root,
@@ -8771,7 +8772,7 @@
 %      the entire image is refreshed.
 %
 */
-MagickExport void XRefreshWindow(Display *display,const XWindowInfo *window,
+MagickPrivate void XRefreshWindow(Display *display,const XWindowInfo *window,
   const XEvent *event)
 {
   int
@@ -9202,7 +9203,7 @@
 %      to busy, otherwise the cursor are reset to their default.
 %
 */
-MagickExport void XSetCursorState(Display *display,XWindows *windows,
+MagickPrivate void XSetCursorState(Display *display,XWindows *windows,
   const MagickStatusType state)
 {
   (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
@@ -9258,7 +9259,7 @@
 %    o windows_info: Initialize the Windows structure with this information.
 %
 */
-MagickExport XWindows *XSetWindows(XWindows *windows_info)
+MagickPrivate XWindows *XSetWindows(XWindows *windows_info)
 {
   static XWindows
     *windows = (XWindows *) NULL;
@@ -9293,7 +9294,7 @@
 %    o resource_info: Specifies a pointer to a X11 XResourceInfo structure.
 %
 */
-MagickExport void XUserPreferences(XResourceInfo *resource_info)
+MagickPrivate void XUserPreferences(XResourceInfo *resource_info)
 {
 #if defined(X11_PREFERENCES_PATH)
   char
@@ -9420,7 +9421,7 @@
 %    o description: Specifies any description to the reason.
 %
 */
-MagickExport void XWarning(const ExceptionType magick_unused(warning),
+MagickPrivate void XWarning(const ExceptionType magick_unused(warning),
   const char *reason,const char *description)
 {
   char
@@ -9467,7 +9468,7 @@
 %    o id: Specifies the id of the window to locate.
 %
 */
-MagickExport Window XWindowByID(Display *display,const Window root_window,
+MagickPrivate Window XWindowByID(Display *display,const Window root_window,
   const size_t id)
 {
   RectangleInfo
@@ -9545,7 +9546,7 @@
 %    o name: Specifies the name of the window to locate.
 %
 */
-MagickExport Window XWindowByName(Display *display,const Window root_window,
+MagickPrivate Window XWindowByName(Display *display,const Window root_window,
   const char *name)
 {
   register int
@@ -9622,7 +9623,7 @@
 %    o property: Specifies the property of the window to locate.
 %
 */
-MagickExport Window XWindowByProperty(Display *display,const Window window,
+MagickPrivate Window XWindowByProperty(Display *display,const Window window,
   const Atom property)
 {
   Atom
@@ -9701,7 +9702,7 @@
 %    o ximage_info: Specifies a pointer to an XImportInfo structure.
 %
 */
-MagickExport Image *XImportImage(const ImageInfo *image_info,
+MagickPrivate Image *XImportImage(const ImageInfo *image_info,
   XImportInfo *ximage_info)
 {
   assert(image_info != (const ImageInfo *) NULL);
diff --git a/MagickCore/xwindow.h b/MagickCore/xwindow.h
index 928b637..265a06c 100644
--- a/MagickCore/xwindow.h
+++ b/MagickCore/xwindow.h
@@ -22,20 +22,42 @@
 extern "C" {
 #endif
 
+#if defined(MAGICKCORE_X11_DELEGATE)
+#include <X11/Xos.h>
+#include <X11/Xlib.h>
+#include <X11/Xresource.h>
+
 typedef struct _XImportInfo
-{
-  MagickBooleanType
-    frame,
-    borders,
-    screen,
-    descend,
-    silent;
-} XImportInfo;
+  XImportInfo;
+
+typedef struct _XResourceInfo
+  XResourceInfo;
+
+extern MagickExport char
+  *XGetResourceClass(XrmDatabase,const char *,const char *,char *),
+  *XGetResourceInstance(XrmDatabase,const char *,const char *,const char *),
+  *XGetScreenDensity(Display *);
+
+extern MagickExport int
+  XError(Display *,XErrorEvent *);
+
+extern MagickExport XrmDatabase
+  XGetResourceDatabase(Display *,const char *);
+
+extern MagickExport void
+  XGetResourceInfo(const ImageInfo *,XrmDatabase,const char *,XResourceInfo *),
+  XRetainWindowColors(Display *,const Window);
+#endif
 
 extern MagickExport Image
   *XImportImage(const ImageInfo *,XImportInfo *);
 
+extern MagickExport MagickBooleanType
+  XRemoteCommand(Display *,const char *,const char *);
+
 extern MagickExport void
+  DestroyXResources(void),
+  XDestroyResourceInfo(XResourceInfo *),
   XGetImportInfo(XImportInfo *);
 
 #if defined(__cplusplus) || defined(c_plusplus)