diff --git a/Fltk/Socket.cpp b/Fltk/Socket.cpp
index e376be785e603eabd536cfc1166ef3969b862050..2d031e455cd9290b0d1c1404cd8d53692fe35f47 100644
--- a/Fltk/Socket.cpp
+++ b/Fltk/Socket.cpp
@@ -1,8 +1,11 @@
-/* $Id: Socket.cpp,v 1.9 2001-05-07 07:35:40 geuzaine Exp $ */
+/* $Id: Socket.cpp,v 1.10 2001-05-07 07:55:00 geuzaine Exp $ */
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#ifdef _AIX
+#include <strings.h>
+#endif
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/stat.h>
@@ -78,6 +81,16 @@ void Socket_SendString(int socket, char str[]){
   Socket_SendData(socket, str, len);
 }
 
+int Socket_UnlinkName(char *name){
+#ifdef _AIX
+   char name2[1000];
+   strcpy(name2,name);
+   name2[strlen(name2)-1] = '\0';
+   return unlink(name2);
+#else
+   return unlink(name);
+#endif
+}
 
 int Socket_StartProgram(char *progname, char *sockname){
   int s, sock;
@@ -93,7 +106,7 @@ int Socket_StartProgram(char *progname, char *sockname){
   int retval;
 
   /* first delete the socket's name if it exists */
-  unlink(sockname);
+  Socket_UnlinkName(sockname);
   
   /* make the socket */
   s = socket(PF_UNIX, SOCK_STREAM, 0);
@@ -145,7 +158,7 @@ int Socket_StartProgram(char *progname, char *sockname){
 }
 
 int Socket_StopProgram(char *progname, char *sockname, int sock){
-  if(unlink(sockname)==-1) Msg(WARNING, "Impossible to unlink the socket");
+  if(Socket_UnlinkName(sockname)==-1) Msg(WARNING, "Impossible to unlink the socket");
   close(sock);
   return 0;
 }