diff --git a/src/couchdb/couch_os_process.erl b/src/couchdb/couch_os_process.erl
index 3a267be..15e845b 100644
--- a/src/couchdb/couch_os_process.erl
+++ b/src/couchdb/couch_os_process.erl
@@ -20,7 +20,7 @@
 
 -include("couch_db.hrl").
 
--define(PORT_OPTIONS, [stream, {line, 4096}, binary, exit_status, hide]).
+-define(PORT_OPTIONS, [stream, {line, 1024}, binary, exit_status, hide]).
 
 -record(os_proc,
     {command,
@@ -94,7 +94,7 @@ drop_port_messages(Port) ->
 % Utility functions for reading and writing
 % in custom functions
 writeline(OsProc, Data) when is_record(OsProc, os_proc) ->
-    port_command(OsProc#os_proc.port, [Data, $\n]).
+    port_command(OsProc#os_proc.port, [Data, $\r, $\n]).
 
 readline(#os_proc{} = OsProc) ->
     readline(OsProc, []).
@@ -123,12 +123,12 @@ readline(#os_proc{port = Port} = OsProc, Acc) ->
 % Standard JSON functions
 writejson(OsProc, Data) when is_record(OsProc, os_proc) ->
     JsonData = ?JSON_ENCODE(Data),
-    ?LOG_DEBUG("OS Process ~p Input  :: ~s", [OsProc#os_proc.port, JsonData]),
+    ?LOG_INFO("OS Process ~p Input  :: ~s", [OsProc#os_proc.port, JsonData]),
     true = writeline(OsProc, JsonData).
 
 readjson(OsProc) when is_record(OsProc, os_proc) ->
     Line = iolist_to_binary(readline(OsProc)),
-    ?LOG_DEBUG("OS Process ~p Output :: ~s", [OsProc#os_proc.port, Line]),
+    ?LOG_INFO("OS Process ~p Output :: ~s", [OsProc#os_proc.port, Line]),
     try
         % Don't actually parse the whole JSON. Just try to see if it's
         % a command or a doc map/reduce/filter/show/list/update output.
@@ -185,7 +185,7 @@ init([Command, Options, PortOptions]) ->
     },
     KillCmd = iolist_to_binary(readline(BaseProc)),
     Pid = self(),
-    ?LOG_DEBUG("OS Process Start :: ~p", [BaseProc#os_proc.port]),
+    ?LOG_INFO("OS Process Start :: ~p", [BaseProc#os_proc.port]),
     spawn(fun() ->
             % this ensure the real os process is killed when this process dies.
             erlang:monitor(process, Pid),
@@ -231,20 +231,20 @@ handle_cast({send, Data}, #os_proc{writer=Writer}=OsProc) ->
         {noreply, OsProc}
     catch
         throw:OsError ->
-            ?LOG_ERROR("Failed sending data: ~p -> ~p", [Data, OsError]),
+            ?LOG_INFO("Failed sending data: ~p -> ~p", [Data, OsError]),
             {stop, normal, OsProc}
     end;
 handle_cast(stop, OsProc) ->
     {stop, normal, OsProc};
 handle_cast(Msg, OsProc) ->
-    ?LOG_DEBUG("OS Proc: Unknown cast: ~p", [Msg]),
+    ?LOG_INFO("OS Proc: Unknown cast: ~p", [Msg]),
     {noreply, OsProc}.
 
 handle_info({Port, {exit_status, 0}}, #os_proc{port=Port}=OsProc) ->
     ?LOG_INFO("OS Process terminated normally", []),
     {stop, normal, OsProc};
 handle_info({Port, {exit_status, Status}}, #os_proc{port=Port}=OsProc) ->
-    ?LOG_ERROR("OS Process died with status: ~p", [Status]),
+    ?LOG_INFO("OS Process died with status: ~p", [Status]),
     {stop, {exit_status, Status}, OsProc}.
 
 code_change(_OldVsn, State, _Extra) ->
