     ] if ;
 
 : get-overlapped-result ( overlapped port -- bytes-transferred )
-    dup port-handle win32-file-handle rot 0 <uint>
+    dup handle>> handle>> rot 0 <uint>
     [ 0 GetOverlappedResult overlapped-error? drop ] keep *uint ;
 
 : save-callback ( overlapped port -- )

        ] [
            dup eof? [
                drop lookup-callback
                dup io-callback-port t swap set-port-eof?
            ] [
                (win32-error-string) swap lookup-callback
                [ io-callback-port set-port-error ] keep
            ] if io-callback-thread resume f
        ] if
    ] [
        lookup-callback

    handle-overlapped [ 0 drain-overlapped ] unless ;

M: winnt cancel-io
    handle>> handle>> CancelIo drop ;

M: winnt io-multiplex ( ms -- )
    drain-overlapped ;
