diff --git a/mi/micmap.c b/mi/micmap.c
index 3ef0c8c..41d53a7 100644
--- a/mi/micmap.c
+++ b/mi/micmap.c
@@ -464,6 +464,11 @@ maskShift(Pixel p)
  * the set which can be used with this version of cfb.
  */
 
+#if defined(__sparc__) || defined(__sparc)
+_X_EXPORT miInitVisualsProcPtr miInitVisualsProc = NULL;
+#endif /* __sparc__ */
+
+
 Bool
 miInitVisuals(VisualPtr * visualp, DepthPtr * depthp, int *nvisualp,
               int *ndepthp, int *rootDepthp, VisualID * defaultVisp,
@@ -482,6 +487,13 @@ miInitVisuals(VisualPtr * visualp, DepthPtr * depthp, int *nvisualp,
     int *preferredCVCs, *prefp;
     int first_depth;
 
+#if defined(__sparc__) || defined(__sparc)
+    if (miInitVisualsProc) {
+       return (miInitVisualsProc(visualp, depthp, nvisualp, ndepthp,
+               rootDepthp, defaultVisp, sizes, bitsPerRGB, preferredVis));
+    }
+#endif /* __sparc__ */
+
     /* none specified, we'll guess from pixmap formats */
     if (!miVisuals) {
         for (f = 0; f < screenInfo.numPixmapFormats; f++) {