--- /dev/null
+--- dx-4.4.4/src/exec/libdx/fileio.c.open 2006-01-05 23:55:47.000000000 +0100
++++ dx-4.4.4/src/exec/libdx/fileio.c 2007-08-17 18:43:14.000000000 +0200
+@@ -263,7 +263,7 @@ Error _dxffile_open(char *name, int rw)
+ case 2:/* read/write */
+ fd = open(name, O_RDWR);
+ if (fd < 0) {
+- fd = open(name, O_WRONLY | O_CREAT);
++ fd = open(name, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);
+ if (fd < 0) {
+ DXSetError(ERROR_DATA_INVALID,
+ "can't open/create file '%s'", name);
+--- dx-4.4.4/src/exec/libdx/plock.c.open 2002-07-17 06:48:18.000000000 +0200
++++ dx-4.4.4/src/exec/libdx/plock.c 2007-08-17 19:05:14.000000000 +0200
+@@ -37,7 +37,8 @@ struct seminfo *__buf; /* buffer fo
+
+ #define SEM_FLAGS (IPC_CREAT | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
+ #define SHM_FLAGS (IPC_CREAT | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
+-#define OPEN_FLAGS (O_CREAT | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
++#define OPEN_FLAGS (O_CREAT)
++#define OPEN_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
+ #define IS_MINE(a) (locks->_owner[a] == getpid())
+ #define SET_OWNER(a) (locks->_owner[a] = getpid())
+ #define CLEAR_OWNER(a) (locks->_owner[a] = 0)
+@@ -268,7 +269,7 @@ PLockInit()
+
+ if (stat(LOCKFILE, &statbuf))
+ {
+- int fd = open(LOCKFILE, OPEN_FLAGS);
++ int fd = open(LOCKFILE, OPEN_FLAGS, OPEN_MODE);
+ if (fd < 0)
+ {
+ fprintf(stderr, "initLocks: error accessing locks shared block: open\n");