diff --git a/Makefile b/Makefile
index 60091d44ea..6f12633871 100755
--- a/Makefile
+++ b/Makefile
@@ -145,7 +145,8 @@ wince-arm:
 
 macosx.app: factor
 	mkdir -p $(BUNDLE)/Contents/MacOS
-	cp $(EXECUTABLE) $(BUNDLE)/Contents/MacOS/factor
+	mv $(EXECUTABLE) $(BUNDLE)/Contents/MacOS/factor
+	ln -s Factor.app/Contents/MacOS/factor ./factor
 	cp $(ENGINE) $(BUNDLE)/Contents/Frameworks
 
 	install_name_tool \
diff --git a/extra/builder/builder.factor b/extra/builder/builder.factor
index b123b9c428..4cd2613e8d 100644
--- a/extra/builder/builder.factor
+++ b/extra/builder/builder.factor
@@ -65,15 +65,14 @@ IN: builder
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: factor-binary ( -- name )
-  os
-  { { "macosx" [ "./Factor.app/Contents/MacOS/factor" ] }
-    { "winnt"  [ "./factor-nt.exe" ] }
-    [ drop       "./factor" ] }
-  case ;
+! : factor-binary ( -- name )
+!   os "macosx" =
+!     [ "./Factor.app/Contents/MacOS/factor" ]
+!     [ "./factor" ]
+!   if ;
 
 : bootstrap-cmd ( -- cmd )
-  { factor-binary { "-i=" my-boot-image-name } "-no-user-init" } to-strings ;
+  { "./factor" { "-i=" my-boot-image-name } "-no-user-init" } to-strings ;
 
 : bootstrap ( -- desc )
   <process*>
@@ -85,7 +84,7 @@ IN: builder
   >desc ;
 
 : builder-test-cmd ( -- cmd )
-  { factor-binary "-run=builder.test" } to-strings ;
+  { "./factor" "-run=builder.test" } to-strings ;
 
 : builder-test ( -- desc )
   <process*>
@@ -178,7 +177,7 @@ SYMBOL: builder-recipients
 
 : build ( -- )
   [ (build) ] [ drop ] recover
-  maybe-release
+  build-status get [ maybe-release ] when
   [ send-builder-email ] [ drop "not sending mail" . ] recover
   ".." cd { "rm" "-rf" "factor" } run-process drop
   [ compress-image ] [ drop ] recover ;
diff --git a/extra/furnace/furnace.factor b/extra/furnace/furnace.factor
index 11ff697049..590b3c82a7 100755
--- a/extra/furnace/furnace.factor
+++ b/extra/furnace/furnace.factor
@@ -204,4 +204,3 @@ SYMBOL: model
     ] [
         drop
     ] if ;
-
diff --git a/extra/furnace/sessions/sessions.factor b/extra/furnace/sessions/sessions.factor
index 579e5a607e..cf03fee6b1 100755
--- a/extra/furnace/sessions/sessions.factor
+++ b/extra/furnace/sessions/sessions.factor
@@ -1,5 +1,5 @@
 USING: assocs calendar init kernel math.parser
-namespaces random boxes alarms ;
+namespaces random boxes alarms combinators.lib ;
 IN: furnace.sessions
 
 SYMBOL: sessions
@@ -11,9 +11,8 @@ SYMBOL: sessions
 ] "furnace.sessions" add-init-hook
 
 : new-session-id ( -- str )
-    4 big-random >hex
-    dup sessions get-global key?
-    [ drop new-session-id ] when ;
+    [ 4 big-random >hex ]
+    [ sessions get-global key? not ] generate ;
 
 TUPLE: session id namespace alarm user-agent ;
 
diff --git a/extra/http/server/responders/responders.factor b/extra/http/server/responders/responders.factor
index 5e0a5d57d9..ac317e2605 100755
--- a/extra/http/server/responders/responders.factor
+++ b/extra/http/server/responders/responders.factor
@@ -77,7 +77,7 @@ SYMBOL: max-post-request
 1024 256 * max-post-request set-global
 
 : content-length ( header -- n )
-    "content-length" peek-at string>number dup [
+    "content-length" swap peek-at string>number dup [
         dup max-post-request get > [
             "Content-Length > max-post-request" throw
         ] when
diff --git a/misc/factor.sh b/misc/factor.sh
index 44feb329fb..4f503f427b 100755
--- a/misc/factor.sh
+++ b/misc/factor.sh
@@ -186,8 +186,8 @@ find_word_size() {
 
 set_factor_binary() {
         case $OS in
-                winnt) FACTOR_BINARY=factor-nt;;
-                macosx) FACTOR_BINARY=./Factor.app/Contents/MacOS/factor;;
+                # winnt) FACTOR_BINARY=factor-nt;;
+                # macosx) FACTOR_BINARY=./Factor.app/Contents/MacOS/factor;;
                 *) FACTOR_BINARY=factor;;
         esac
 }