diff --git a/core/io/binary/binary-docs.factor b/core/io/binary/binary-docs.factor
index edf65491fe..507571c044 100644
--- a/core/io/binary/binary-docs.factor
+++ b/core/io/binary/binary-docs.factor
@@ -6,12 +6,12 @@ ARTICLE: "stream-binary" "Working with binary data"
 $nl
 "There are two ways to order the bytes making up an integer; " { $emphasis "little endian" } " byte order outputs the least significant byte first, and the most significant byte last, whereas " { $emphasis "big endian" } " is the other way around."
 $nl
-"Consider the hexadecimal integer "{ $snippet "HEX: cafebabe" } ". Big endian byte order yields the following sequence of bytes:"
+"Consider the hexadecimal integer "{ $snippet "HEX: cafebabe" } ". Little endian byte order yields the following sequence of bytes:"
 { $table
     { "Byte:" "1" "2" "3" "4" }
     { "Value:" { $snippet "be" } { $snippet "ba" } { $snippet "fe" } { $snippet "ca" } }
 }
-"Compare this with little endian byte order:"
+"Compare this with big endian byte order:"
 { $table
     { "Byte:" "1" "2" "3" "4" }
     { "Value:" { $snippet "ca" } { $snippet "fe" } { $snippet "ba" } { $snippet "be" } }
diff --git a/core/sequences/sequences-docs.factor b/core/sequences/sequences-docs.factor
index 8b15f5b980..351ba89692 100755
--- a/core/sequences/sequences-docs.factor
+++ b/core/sequences/sequences-docs.factor
@@ -821,8 +821,8 @@ HELP: 3append
 
 HELP: subseq
 { $values { "from" "a non-negative integer" } { "to" "a non-negative integer" } { "seq" sequence } { "subseq" "a new sequence" } }
-{ $description "Outputs a new sequence consisting of all elements starting from and including " { $snippet "m" } ", and up to but not including " { $snippet "n" } "." }
-{ $errors "Throws an error if " { $snippet "m" } " or " { $snippet "n" } " is out of bounds." } ;
+{ $description "Outputs a new sequence consisting of all elements starting from and including " { $snippet "from" } ", and up to but not including " { $snippet "to" } "." }
+{ $errors "Throws an error if " { $snippet "from" } " or " { $snippet "to" } " is out of bounds." } ;
 
 HELP: clone-like
 { $values { "seq" sequence } { "exemplar" sequence } { "newseq" "a new sequence" } }
diff --git a/extra/io/unix/sockets/secure/secure-tests.factor b/extra/io/unix/sockets/secure/secure-tests.factor
index c68b497493..5b8fd5ac23 100644
--- a/extra/io/unix/sockets/secure/secure-tests.factor
+++ b/extra/io/unix/sockets/secure/secure-tests.factor
@@ -2,85 +2,60 @@ IN: io.sockets.secure.tests
 USING: accessors kernel namespaces io io.sockets
 io.sockets.secure io.encodings.ascii io.streams.duplex
 classes words destructors threads tools.test
-concurrency.promises byte-arrays ;
+concurrency.promises byte-arrays locals ;
 
 \ <secure-config> must-infer
 { 1 0 } [ [ ] with-secure-context ] must-infer-as
 
 [ ] [ <promise> "port" set ] unit-test
 
-[ ] [
+: with-test-context
+    <secure-config>
+        "resource:extra/openssl/test/server.pem" >>key-file
+        "resource:extra/openssl/test/root.pem" >>ca-file
+        "resource:extra/openssl/test/dh1024.pem" >>dh-file
+        "password" >>password
+    swap with-secure-context ;
+
+:: server-test ( quot -- )
     [
-        <secure-config>
-            "resource:extra/openssl/test/server.pem" >>key-file
-            "resource:extra/openssl/test/root.pem" >>ca-file
-            "resource:extra/openssl/test/dh1024.pem" >>dh-file
-            "password" >byte-array >>password
         [
             "127.0.0.1" 0 <inet4> <secure> ascii <server> [
                 dup addr>> addrspec>> port>> "port" get fulfill
                 accept [
-                    class word-name write
+                    quot call
                 ] curry with-stream
             ] with-disposal
-        ] with-secure-context
-    ] "SSL server test" spawn drop
-] unit-test
+        ] with-test-context
+    ] "SSL server test" spawn drop ;
 
-[ "secure" ] [
+: client-test
     <secure-config> [
         "127.0.0.1" "port" get ?promise <inet4> <secure> ascii <client> drop contents
-    ] with-secure-context
-] unit-test
+    ] with-secure-context ;
+
+[ ] [ [ class word-name write ] server-test ] unit-test
+
+[ "secure" ] [ client-test ] unit-test
 
 ! Now, see what happens if the server closes the connection prematurely
-! [ ] [ <promise> "port" set ] unit-test
-! 
-! [ ] [
-!     [
-!         <secure-config>
-!             "resource:extra/openssl/test/server.pem" >>key-file
-!             "resource:extra/openssl/test/root.pem" >>ca-file
-!             "resource:extra/openssl/test/dh1024.pem" >>dh-file
-!             "password" >byte-array >>password
-!         [
-!             "127.0.0.1" 0 <inet4> <secure> ascii <server> [
-!                 dup addr>> addrspec>> port>> "port" get fulfill
-!                 accept drop
-!                 [
-!                     dup in>> stream>> handle>> f >>connected drop
-!                     "hello" over stream-write dup stream-flush
-!                 ] with-disposal
-!             ] with-disposal
-!         ] with-secure-context
-!     ] "SSL server test" spawn drop
-! ] unit-test
+[ ] [ <promise> "port" set ] unit-test
 
-! [
-!     <secure-config> [
-!         "127.0.0.1" "port" get ?promise <inet4> <secure> ascii <client> drop contents
-!     ] with-secure-context
-! ] [ \ premature-close = ] must-fail-with
+[ ] [
+    [
+        drop
+        input-stream get stream>> handle>> f >>connected drop
+        "hello" write flush
+    ] server-test
+] unit-test
+
+[ client-test ] [ premature-close? ] must-fail-with
 
 ! Now, try validating the certificate. This should fail because its
 ! actually an invalid certificate
 [ ] [ <promise> "port" set ] unit-test
 
-[ ] [
-    [
-        <secure-config>
-            "resource:extra/openssl/test/server.pem" >>key-file
-            "resource:extra/openssl/test/root.pem" >>ca-file
-            "resource:extra/openssl/test/dh1024.pem" >>dh-file
-            "password" >>password
-        [
-            "127.0.0.1" 0 <inet4> <secure> ascii <server> [
-                dup addr>> addrspec>> port>> "port" get fulfill
-                accept drop dispose
-            ] with-disposal
-        ] with-secure-context
-    ] "SSL server test" spawn drop
-] unit-test
+[ ] [ [ drop ] server-test ] unit-test
 
 [
     <secure-config> [
diff --git a/extra/io/unix/sockets/secure/secure.factor b/extra/io/unix/sockets/secure/secure.factor
index 9feeb90690..35f72a5d16 100755
--- a/extra/io/unix/sockets/secure/secure.factor
+++ b/extra/io/unix/sockets/secure/secure.factor
@@ -125,12 +125,14 @@ M: secure (accept)
     {
         { 1 [ drop f ] }
         { 0 [
-                dup handle>> SSL_want
-                {
-                    { SSL_NOTHING [ dup handle>> SSL_shutdown check-shutdown-response ] }
-                    { SSL_READING [ drop +input+ ] }
-                    { SSL_WRITING [ drop +output+ ] }
-                } case
+            dup handle>> dup f 0 SSL_read 2dup SSL_get_error
+            {
+                { SSL_ERROR_ZERO_RETURN [ 2drop dup handle>> SSL_shutdown check-shutdown-response ] }
+                { SSL_ERROR_WANT_READ [ 3drop +input+ ] }
+                { SSL_ERROR_WANT_WRITE [ 3drop +output+ ] }
+                { SSL_ERROR_SYSCALL [ syscall-error ] }
+                { SSL_ERROR_SSL [ (ssl-error) ] }
+            } case
         ] }
         { -1 [
             handle>> -1 SSL_get_error
diff --git a/extra/windows/com/com-tests.factor b/extra/windows/com/com-tests.factor
old mode 100644
new mode 100755
index e2685db1d0..abba8874d6
--- a/extra/windows/com/com-tests.factor
+++ b/extra/windows/com/com-tests.factor
@@ -1,7 +1,7 @@
 USING: kernel windows.com windows.com.syntax windows.ole32
 alien alien.syntax tools.test libc alien.c-types arrays.lib 
 namespaces arrays continuations accessors math windows.com.wrapper
-windows.com.wrapper.private ;
+windows.com.wrapper.private destructors ;
 IN: windows.com.tests
 
 COM-INTERFACE: ISimple IUnknown {216fb341-0eb2-44b1-8edb-60b76e353abc}
diff --git a/extra/windows/com/wrapper/wrapper-docs.factor b/extra/windows/com/wrapper/wrapper-docs.factor
old mode 100644
new mode 100755
index 51a3549047..89b199a38b
--- a/extra/windows/com/wrapper/wrapper-docs.factor
+++ b/extra/windows/com/wrapper/wrapper-docs.factor
@@ -1,5 +1,6 @@
 USING: help.markup help.syntax io kernel math quotations
-multiline alien windows.com windows.com.syntax continuations ;
+multiline alien windows.com windows.com.syntax continuations
+destructors ;
 IN: windows.com.wrapper
 
 HELP: <com-wrapper>
diff --git a/extra/windows/com/wrapper/wrapper.factor b/extra/windows/com/wrapper/wrapper.factor
index ae5f03a594..5b7bb63590 100755
--- a/extra/windows/com/wrapper/wrapper.factor
+++ b/extra/windows/com/wrapper/wrapper.factor
@@ -2,7 +2,7 @@ USING: alien alien.c-types windows.com.syntax
 windows.com.syntax.private windows.com continuations kernel
 sequences.lib namespaces windows.ole32 libc
 assocs accessors arrays sequences quotations combinators
-math combinators.lib words compiler.units ;
+math combinators.lib words compiler.units destructors ;
 IN: windows.com.wrapper
 
 TUPLE: com-wrapper vtbls freed? ;