diff --git a/src/gui_xmebw.c b/src/gui_xmebw.c
index 6a01a71..2c66db1 100644
--- a/src/gui_xmebw.c
+++ b/src/gui_xmebw.c
@@ -69,6 +69,20 @@
     _XmDrawHighlight(a, b, c, d, e, f, g, h, LineSolid)
 #endif
 
+// Older VMS systems do not have xos_r.h and cannot haldle XtProcessLocking
+#if defined(VMS)
+# if defined(HAVE_XOS_R_H)
+#  define XTPROCESS_LOCK XtProcessLock()
+#  define XTPROCESS_UNLOCK XtProcessUnlock()
+# else
+#  define XTPROCESS_LOCK
+#  define XTPROCESS_UNLOCK
+# endif
+#else
+# define XTPROCESS_LOCK XtProcessLock()
+# define XTPROCESS_UNLOCK XtProcessUnlock()
+#endif
+
 /*
  * Motif internals we have to cheat around with.
  */
@@ -714,9 +728,9 @@
     {
 	XtExposeProc expose;
 
-	XtProcessLock();
+	XTPROCESS_LOCK;
 	expose = xmLabelClassRec.core_class.expose;
-	XtProcessUnlock();
+	XTPROCESS_UNLOCK;
 	(*expose)((Widget) eb, event, region);
     }
 
@@ -809,9 +823,9 @@
 	_XmPrimitiveEnter((Widget) eb, event, NULL, NULL);
 	if (eb->pushbutton.armed == TRUE)
 	{
-	    XtProcessLock();
+	    XTPROCESS_LOCK;
 	    expose = XtClass(eb)->core_class.expose;
-	    XtProcessUnlock();
+	    XTPROCESS_UNLOCK;
 	    (*expose) (wid, event, (Region) NULL);
 	}
 
@@ -887,9 +901,9 @@
 	{
 	    XtExposeProc expose;
 	    eb->pushbutton.armed = FALSE;
-	    XtProcessLock();
+	    XTPROCESS_LOCK;
 	    expose = XtClass(eb)->core_class.expose;
-	    XtProcessUnlock();
+	    XTPROCESS_UNLOCK;
 	    (*expose) (wid, event, (Region)NULL);
 	    draw_unhighlight(eb);
 	    draw_pixmap(eb, event, NULL);
@@ -973,9 +987,9 @@
     // Invoke Label's Resize procedure.
     {
 	XtWidgetProc resize;
-	XtProcessLock();
+	XTPROCESS_LOCK;
 	resize = xmLabelClassRec.core_class.resize;
-	XtProcessUnlock();
+	XTPROCESS_UNLOCK;
 
 	(* resize) ((Widget) newtb);
     }
@@ -988,9 +1002,9 @@
     XmEnhancedButtonWidget  eb = (XmEnhancedButtonWidget)ebw;
     XtWidgetProc	    resize;
 
-    XtProcessLock();
+    XTPROCESS_LOCK;
     resize = xmLabelClassRec.core_class.resize;
-    XtProcessUnlock();
+    XTPROCESS_UNLOCK;
 
     // Create a bitmap for stippling (Drawable resources are cheap).
     if (STIPPLE_BITMAP == None)
