diff --git a/cbits/output_buffer.c b/cbits/output_buffer.c
deleted file mode 100644
--- a/cbits/output_buffer.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#define _XOPEN_SOURCE 500
-#include <unistd.h>
-
-#include "output_buffer.h"
-
-void stdout_output_buffer ( int out_fd, uint8_t* buffer, size_t buffer_size )
-{
-    while ( buffer_size )
-    {
-        const ssize_t r = write( out_fd, (void*) buffer, buffer_size );
-
-        buffer_size -= (size_t) r;
-        buffer += (size_t) r;
-    }
-
-    fdatasync( out_fd );
-}
-
diff --git a/cbits/output_buffer.h b/cbits/output_buffer.h
deleted file mode 100644
--- a/cbits/output_buffer.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define _XOPEN_SOURCE 500
-#include <unistd.h>
-#include <stdint.h>
-
-void stdout_output_buffer ( int out_fd, uint8_t* buffer, size_t buffer_size );
diff --git a/src/Graphics/Vty/Terminal/Generic.hs b/src/Graphics/Vty/Terminal/Generic.hs
--- a/src/Graphics/Vty/Terminal/Generic.hs
+++ b/src/Graphics/Vty/Terminal/Generic.hs
@@ -1,6 +1,6 @@
 -- Copyright 2009-2010 Corey O'Connor
+{-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE Rank2Types #-}
 {-# LANGUAGE ExistentialQuantification #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE FlexibleContexts #-}
@@ -98,7 +98,7 @@
     output_handle (TerminalHandle t _) = output_handle t
 
 data DisplayHandle where
-    DisplayHandle :: DisplayTerminal d => d -> TerminalHandle -> DisplayState -> DisplayHandle
+    DisplayHandle :: forall d . DisplayTerminal d => d -> TerminalHandle -> DisplayState -> DisplayHandle
 
 -- | Acquire display access to the given region of the display.
 -- Currently all regions have the upper left corner of (0,0) and the lower right corner at 
@@ -106,8 +106,7 @@
 display_context :: MonadIO m => TerminalHandle -> DisplayRegion -> m DisplayHandle
 display_context t b = do
     s <- initial_display_state
-    let c d = DisplayHandle d t s
-    display_terminal_instance t b c
+    display_terminal_instance t b (\ d -> DisplayHandle d t s)
 
 data DisplayState = DisplayState
     { previous_output_ref :: IORef (Maybe SpanOpSequence)
diff --git a/src/Graphics/Vty/Terminal/TerminfoBased.hs b/src/Graphics/Vty/Terminal/TerminfoBased.hs
--- a/src/Graphics/Vty/Terminal/TerminfoBased.hs
+++ b/src/Graphics/Vty/Terminal/TerminfoBased.hs
@@ -181,12 +181,8 @@
 
     output_handle t = return (term_handle t)
 
--- foreign import ccall unsafe "output_buffer.h stdout_output_buffer" c_output_byte_buffer 
---     :: CInt -> Ptr Word8 -> CSize -> IO ()
 foreign import ccall "gwinsz.h c_get_window_size" c_get_window_size 
     :: IO CLong
--- foreign import ccall "fdatasync" c_fdatasync 
---     :: CInt -> IO CInt
 
 get_window_size :: IO (Int,Int)
 get_window_size = do 
diff --git a/vty.cabal b/vty.cabal
--- a/vty.cabal
+++ b/vty.cabal
@@ -1,5 +1,5 @@
 Name:                vty
-Version:             4.4.0.0.1
+Version:             4.6.0.1
 License:             BSD3
 License-file:        LICENSE
 Author:              Stefan O'Rear, Corey O'Connor
@@ -12,7 +12,7 @@
   confusing corner cases, and good support for common terminal types.
   .
   Included in the source distribution is a program test/interactive_terminal_test.hs that
-  demonstrates the various features.
+  demonstrates the various features. 
   .
   If your terminal is not behaving as expected the results of the test/interactive_terminal_test.hs
   program should be sent to the Vty maintainter to aid in debugging the issue.
@@ -25,19 +25,14 @@
   &#169; 2006-2007 Stefan O'Rear; BSD3 license.
   .
   &#169; 2008-2010 Corey O'Connor; BSD3 license.
-  .
-  NOTE: This version is identical to 4.4.0.0 except that the restriction
-  on vector-space 0.5.* has been lifted; i.e. nothing has changed except
-  the Cabal file.
 
 Build-Depends:       base >= 4 && < 5, bytestring, containers, unix
 Build-Depends:       terminfo >= 0.3 && < 0.4
 Build-Depends:       utf8-string >= 0.3 && < 0.4
-Build-Depends:       mtl >= 1.1.0.0 && < 1.2
-Build-Depends:       ghc-prim, parallel >= 2.2 && < 2.3, deepseq >= 1.1 && < 1.2
+Build-Depends:       mtl >= 1.1.1.0 && < 2.1
+Build-Depends:       ghc-prim, parallel >= 2.2 && < 3.2, deepseq >= 1.1 && < 1.2
 Build-Depends:       array
 Build-Depends:       parsec >= 2 && < 4
-Build-Depends:       vector-space >= 0.5 && < 0.8
 Build-Type:          Simple
 Data-Files:          README, TODO
 Exposed-Modules:     Graphics.Vty
@@ -63,7 +58,6 @@
 C-Sources:           cbits/gwinsz.c
                      cbits/set_term_timing.c
                      cbits/mk_wcwidth.c
-                     cbits/output_buffer.c
 
 Include-Dirs:        cbits
 hs-source-dirs:      src
@@ -106,7 +100,6 @@
                     cbits/mk_wcwidth.c
                     cbits/set_term_timing.c
                     cbits/gwinsz.h
-                    cbits/output_buffer.h
 
 ghc-options:         -O2 -funbox-strict-fields -Wall -fno-full-laziness -fspec-constr
 ghc-prof-options:    -O2 -funbox-strict-fields -caf-all -Wall -fno-full-laziness -fspec-constr
