diff --git a/libsrc/atari/exec.s b/libsrc/atari/exec.s
index 4ae30fdbf..260a772b4 100644
--- a/libsrc/atari/exec.s
+++ b/libsrc/atari/exec.s
@@ -11,11 +11,9 @@
         .import         __dos_type
         .import         findfreeiocb
         .import         incsp2
-        .import         __do_oserror
         .import         excexit                 ; from crt0.s
         .import         SP_save                 ; from crt0.s
 .ifdef  UCASE_FILENAME
-        .importzp       tmp3
         .import         ucase_fn
         .import         addysp
 .endif
@@ -24,7 +22,10 @@
         .include        "errno.inc"
         .include        "atari.inc"
 
-CMDLINE_BUFFER          =       $0100           ; put progname + cmdline as one single string there
+; area $0100 to $0128 might be in use (e.g. Hias' high speed patch)
+CMDLINE_BUFFER          =       $0129           ; put progname + cmdline as one single string there
+; alternatively:
+;CMDLINE_BUFFER          =       $0480           ; put progname + cmdline as one single string there
 CMDLINE_MAX             =       40+3            ; max. length of drive + progname + cmdline
 
         .code
@@ -85,6 +86,11 @@ copyp:  lda     (ptr4),y
         ; programe name too long
         beq     invret
 
+.ifndef  UCASE_FILENAME
+invret: lda     #EINVAL
+        bne     seterr
+.endif
+
 ; file name copied, check for args
 
 copypd: tya                     ; put Y into X (index into CMDLINE_BUFFER)
@@ -172,11 +178,11 @@ openok: lda     #>buf
 ; here's the point of no return
 
         lda     tmp4            ; get IOCB index
-        pha                     ; and save it ('excexit' calls destructors and they might destroy tmp4)
-        jsr     excexit
-        pla
         ldx     SP_save
-        txs                     ; reset stack pointer
+        txs                     ; reset stack pointer to what it was at program entry
+        pha                     ; and save it ('excexit' calls destructors and they might destroy tmp4)
+        jsr     excexit         ; on atarixl this will enable the ROM again, making all high variables inaccessible
+        pla
         tax                     ; IOCB index in X
 
         lda     #<CMDLINE_BUFFER
diff --git a/libsrc/atari/open.s b/libsrc/atari/open.s
index d5ff4ca52..721519525 100644
--- a/libsrc/atari/open.s
+++ b/libsrc/atari/open.s
@@ -8,6 +8,7 @@
         .include "fcntl.inc"
         .include "errno.inc"
         .include "fd.inc"
+        .include "zeropage.inc"
 
         .export _open
         .destructor     closeallfiles, 5
@@ -19,9 +20,7 @@
         .import incsp4
         .import ldaxysp,addysp
         .import __oserror
-        .importzp tmp4,tmp2
 .ifdef  UCASE_FILENAME
-        .importzp tmp3
         .import ucase_fn
 .endif