diff --git a/src/gui_motif.c b/src/gui_motif.c
index 7402888..56d3f35 100644
--- a/src/gui_motif.c
+++ b/src/gui_motif.c
@@ -142,12 +142,12 @@
     XtPointer	client_data UNUSED,
     XtPointer	call_data UNUSED)
 {
-    int		cmd, tab_idx;
+    XtPointer	cmd, tab_idx;
 
     XtVaGetValues(w, XmNuserData, &cmd, NULL);
     XtVaGetValues(tabLine_menu, XmNuserData, &tab_idx, NULL);
 
-    send_tabline_menu_event(tab_idx, cmd);
+    send_tabline_menu_event((int)(long)tab_idx, (int)(long)cmd);
 }
 
 /*
@@ -254,7 +254,7 @@
 	    XtVaGetValues(tab_w, XmNpageNumber, &tab_idx, NULL);
     }
 
-    XtVaSetValues(tabLine_menu, XmNuserData, tab_idx, NULL);
+    XtVaSetValues(tabLine_menu, XmNuserData, (XtPointer)(long)tab_idx, NULL);
     XtVaGetValues(tabLine_menu, XmNchildren, &children, XmNnumChildren,
 		  &numChildren, NULL);
     XtManageChildren(children, numChildren);
@@ -517,7 +517,7 @@
 
     // Add the buttons to the tabline popup menu
     n = 0;
-    XtSetArg(args[n], XmNuserData, TABLINE_MENU_CLOSE); n++;
+    XtSetArg(args[n], XmNuserData, (XtPointer)TABLINE_MENU_CLOSE); n++;
     xms = XmStringCreate((char *)"Close tab", STRING_TAG);
     XtSetArg(args[n], XmNlabelString, xms); n++;
     button = XmCreatePushButton(tabLine_menu, "Close", args, n);
@@ -526,7 +526,7 @@
     XmStringFree(xms);
 
     n = 0;
-    XtSetArg(args[n], XmNuserData, TABLINE_MENU_NEW); n++;
+    XtSetArg(args[n], XmNuserData, (XtPointer)TABLINE_MENU_NEW); n++;
     xms = XmStringCreate((char *)"New Tab", STRING_TAG);
     XtSetArg(args[n], XmNlabelString, xms); n++;
     button = XmCreatePushButton(tabLine_menu, "New Tab", args, n);
@@ -535,7 +535,7 @@
     XmStringFree(xms);
 
     n = 0;
-    XtSetArg(args[n], XmNuserData, TABLINE_MENU_OPEN); n++;
+    XtSetArg(args[n], XmNuserData, (XtPointer)TABLINE_MENU_OPEN); n++;
     xms = XmStringCreate((char *)"Open tab...", STRING_TAG);
     XtSetArg(args[n], XmNlabelString, xms); n++;
     button = XmCreatePushButton(tabLine_menu, "Open tab...", args, n);
