diff --git a/.gitignore b/.gitignore
index 90e760e..46cd1d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,3 +28,4 @@ rabbitmq-server-1.8.0.tar.gz
 /rabbitmq-server-3.5.5.tar.gz
 /rabbitmq-server-3.5.6.tar.gz
 /rabbitmq-server-3.5.7.tar.gz
+/rabbitmq-server-3.6.1.tar.xz
diff --git a/rabbitmq-common-0001-Use-ephemeral-port-for-probing.patch b/rabbitmq-common-0001-Use-ephemeral-port-for-probing.patch
new file mode 100644
index 0000000..9ca7bfd
--- /dev/null
+++ b/rabbitmq-common-0001-Use-ephemeral-port-for-probing.patch
@@ -0,0 +1,18 @@
+From: John Eckersberg <jeckersb@redhat.com>
+Date: Fri, 24 Jan 2014 10:47:03 -0500
+Subject: [PATCH] Use ephemeral port for probing
+
+
+diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl
+index 47309cc..9a64435 100644
+--- a/src/rabbit_networking.erl
++++ b/src/rabbit_networking.erl
+@@ -50,7 +50,7 @@
+ -include("rabbit.hrl").
+ -include_lib("kernel/include/inet.hrl").
+ 
+--define(FIRST_TEST_BIND_PORT, 10000).
++-define(FIRST_TEST_BIND_PORT, 32768).
+ 
+ %% POODLE
+ -define(BAD_SSL_PROTOCOL_VERSIONS, [sslv3]).
diff --git a/rabbitmq-server-0001-Make-slaves-wait-timeout-configurable-instead-of-har.patch b/rabbitmq-server-0001-Make-slaves-wait-timeout-configurable-instead-of-har.patch
new file mode 100644
index 0000000..78e5d48
--- /dev/null
+++ b/rabbitmq-server-0001-Make-slaves-wait-timeout-configurable-instead-of-har.patch
@@ -0,0 +1,58 @@
+From: Peter Lemenkov <lemenkov@gmail.com>
+Date: Tue, 2 Feb 2016 17:19:19 +0300
+Subject: [PATCH] Make slaves wait timeout configurable instead of hardcoded
+ 15000
+
+This slightly improves rabbitmq/rabbitmq-server#584
+
+Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
+
+diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl
+index 057a4fa..e7afe88 100644
+--- a/src/rabbit_mirror_queue_master.erl
++++ b/src/rabbit_mirror_queue_master.erl
+@@ -43,7 +43,8 @@
+                  backing_queue_state,
+                  seen_status,
+                  confirmed,
+-                 known_senders
++                 known_senders,
++                 wait_timeout
+                }).
+ 
+ -ifdef(use_specs).
+@@ -130,7 +131,15 @@ init_with_existing_bq(Q = #amqqueue{name = QName}, BQ, BQS) ->
+              backing_queue_state = BQS,
+              seen_status         = dict:new(),
+              confirmed           = [],
+-             known_senders       = sets:new() }.
++             known_senders       = sets:new(),
++             wait_timeout        = get_slave_wait_timeout() }.
++
++get_slave_wait_timeout() ->
++    case application:get_env(rabbit, slave_wait_timeout) of
++	    {ok, T}   -> T;
++	    undefined -> 15000
++    end.
++
+ 
+ stop_mirroring(State = #state { coordinator         = CPid,
+                                 backing_queue       = BQ,
+@@ -203,7 +212,7 @@ delete_and_terminate(Reason, State = #state { backing_queue       = BQ,
+     stop_all_slaves(Reason, State),
+     State#state{backing_queue_state = BQ:delete_and_terminate(Reason, BQS)}.
+ 
+-stop_all_slaves(Reason, #state{name = QName, gm = GM}) ->
++stop_all_slaves(Reason, #state{name = QName, gm = GM, wait_timeout = WT}) ->
+     {ok, #amqqueue{slave_pids = SPids}} = rabbit_amqqueue:lookup(QName),
+     PidsMRefs = [{Pid, erlang:monitor(process, Pid)} || Pid <- [GM | SPids]],
+     ok = gm:broadcast(GM, {delete_and_terminate, Reason}),
+@@ -215,7 +224,7 @@ stop_all_slaves(Reason, #state{name = QName, gm = GM}) ->
+     [receive
+          {'DOWN', MRef, process, _Pid, _Info} ->
+              ok
+-     after 15000 ->
++     after WT ->
+              rabbit_mirror_queue_misc:log_warning(
+                QName, "Missing 'DOWN' message from ~p in node ~p~n",
+                [Pid, node(Pid)]),
diff --git a/rabbitmq-server-0001-Use-ephemeral-port-for-probing.patch b/rabbitmq-server-0001-Use-ephemeral-port-for-probing.patch
deleted file mode 100644
index 0a210b2..0000000
--- a/rabbitmq-server-0001-Use-ephemeral-port-for-probing.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-From: John Eckersberg <jeckersb@redhat.com>
-Date: Fri, 24 Jan 2014 10:47:03 -0500
-Subject: [PATCH] Use ephemeral port for probing
-
-
-diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl
-index f95f8c5..61e3a3a 100644
---- a/src/rabbit_networking.erl
-+++ b/src/rabbit_networking.erl
-@@ -39,7 +39,7 @@
- -include("rabbit.hrl").
- -include_lib("kernel/include/inet.hrl").
- 
---define(FIRST_TEST_BIND_PORT, 10000).
-+-define(FIRST_TEST_BIND_PORT, 32768).
- 
- %% POODLE
- -define(BAD_SSL_PROTOCOL_VERSIONS, [sslv3]).
diff --git a/rabbitmq-server-0002-Unblock-receive-after-15s.patch b/rabbitmq-server-0002-Unblock-receive-after-15s.patch
deleted file mode 100644
index b385125..0000000
--- a/rabbitmq-server-0002-Unblock-receive-after-15s.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Diana Corbacho <diana.corbacho@erlang-solutions.com>
-Date: Tue, 26 Jan 2016 13:10:58 +0000
-Subject: [PATCH] Unblock receive after 15s
-
-
-diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl
-index 7890128..b7c2d9d 100644
---- a/src/rabbit_mirror_queue_master.erl
-+++ b/src/rabbit_mirror_queue_master.erl
-@@ -208,7 +208,15 @@ stop_all_slaves(Reason, #state{name = QName, gm = GM}) ->
-     %% monitor them but they would not have received the GM
-     %% message. So only wait for slaves which are still
-     %% not-partitioned.
--    [receive {'DOWN', MRef, process, _Pid, _Info} -> ok end
-+    [receive
-+         {'DOWN', MRef, process, _Pid, _Info} ->
-+             ok
-+     after 15000 ->
-+             rabbit_mirror_queue_misc:log_warning(
-+               QName, "Missing 'DOWN' message from ~p in node ~p~n",
-+               [Pid, node(Pid)]),
-+             ok
-+     end
-      || {Pid, MRef} <- PidsMRefs, rabbit_mnesia:on_running_node(Pid)],
-     %% Normally when we remove a slave another slave or master will
-     %% notice and update Mnesia. But we just removed them all, and
diff --git a/rabbitmq-server-0003-Make-slaves-wait-timeout-configurable-instead-of-har.patch b/rabbitmq-server-0003-Make-slaves-wait-timeout-configurable-instead-of-har.patch
deleted file mode 100644
index 26ea914..0000000
--- a/rabbitmq-server-0003-Make-slaves-wait-timeout-configurable-instead-of-har.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From: Peter Lemenkov <lemenkov@gmail.com>
-Date: Tue, 2 Feb 2016 17:19:19 +0300
-Subject: [PATCH] Make slaves wait timeout configurable instead of hardcoded
- 15000
-
-This slightly improves rabbitmq/rabbitmq-server#584
-
-Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
-
-diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl
-index b7c2d9d..f0ddbe8 100644
---- a/src/rabbit_mirror_queue_master.erl
-+++ b/src/rabbit_mirror_queue_master.erl
-@@ -41,7 +41,8 @@
-                  backing_queue_state,
-                  seen_status,
-                  confirmed,
--                 known_senders
-+                 known_senders,
-+                 wait_timeout
-                }).
- 
- -ifdef(use_specs).
-@@ -128,7 +129,15 @@ init_with_existing_bq(Q = #amqqueue{name = QName}, BQ, BQS) ->
-              backing_queue_state = BQS,
-              seen_status         = dict:new(),
-              confirmed           = [],
--             known_senders       = sets:new() }.
-+             known_senders       = sets:new(),
-+             wait_timeout        = get_slave_wait_timeout() }.
-+
-+get_slave_wait_timeout() ->
-+    case application:get_env(rabbit, slave_wait_timeout) of
-+	    {ok, T}   -> T;
-+	    undefined -> 15000
-+    end.
-+
- 
- stop_mirroring(State = #state { coordinator         = CPid,
-                                 backing_queue       = BQ,
-@@ -199,7 +208,7 @@ delete_and_terminate(Reason, State = #state { backing_queue       = BQ,
-     stop_all_slaves(Reason, State),
-     State#state{backing_queue_state = BQ:delete_and_terminate(Reason, BQS)}.
- 
--stop_all_slaves(Reason, #state{name = QName, gm = GM}) ->
-+stop_all_slaves(Reason, #state{name = QName, gm = GM, wait_timeout = WT}) ->
-     {ok, #amqqueue{slave_pids = SPids}} = rabbit_amqqueue:lookup(QName),
-     PidsMRefs = [{Pid, erlang:monitor(process, Pid)} || Pid <- [GM | SPids]],
-     ok = gm:broadcast(GM, {delete_and_terminate, Reason}),
-@@ -211,7 +220,7 @@ stop_all_slaves(Reason, #state{name = QName, gm = GM}) ->
-     [receive
-          {'DOWN', MRef, process, _Pid, _Info} ->
-              ok
--     after 15000 ->
-+     after WT ->
-              rabbit_mirror_queue_misc:log_warning(
-                QName, "Missing 'DOWN' message from ~p in node ~p~n",
-                [Pid, node(Pid)]),
diff --git a/rabbitmq-server.spec b/rabbitmq-server.spec
index 40491aa..69546f9 100644
--- a/rabbitmq-server.spec
+++ b/rabbitmq-server.spec
@@ -1,16 +1,19 @@
 %global erlang_minver R12B-3
+# We want to install into /usr/lib, even on 64-bit platforms
+%global _rabbit_libdir %{_exec_prefix}/lib/rabbitmq
 
 
 Name: rabbitmq-server
-Version: 3.5.7
-Release: 4%{?dist}
+Version: 3.6.1
+Release: 1%{?dist}
 License: MPLv1.1
 Group: Development/Libraries
-Source: http://www.rabbitmq.com/releases/rabbitmq-server/v%{version}/%{name}-%{version}.tar.gz
+Source: http://www.rabbitmq.com/releases/rabbitmq-server/v%{version}/%{name}-%{version}.tar.xz
 # curl -O https://raw.githubusercontent.com/rabbitmq/rabbitmq-server/231e90c/scripts/rabbitmq-script-wrapper
 # sed -i -e "s, @STDOUT_STDERR_REDIRECTION@,,g" rabbitmq-script-wrapper
 # sed -i -e "s,@SU_RABBITMQ_SH_C@,su rabbitmq -s /bin/sh -c,g" rabbitmq-script-wrapper
 Source2: rabbitmq-script-wrapper
+# curl -O https://raw.githubusercontent.com/lemenkov/rabbitmq-server/cdfc661/packaging/RPMS/Fedora/rabbitmq-server.logrotate
 Source3: rabbitmq-server.logrotate
 # curl -O https://raw.githubusercontent.com/rabbitmq/rabbitmq-server/231e90c/scripts/rabbitmq-server.ocf
 Source4: rabbitmq-server.ocf
@@ -19,7 +22,7 @@ Source6: rabbitmq-server.service
 URL: http://www.rabbitmq.com/
 BuildArch: noarch
 BuildRequires: erlang >= %{erlang_minver}, python-simplejson, xmlto, libxslt, python, zip
-BuildRequires:  systemd
+BuildRequires: systemd
 Requires: logrotate
 Requires: erlang-erts%{?_isa} >= %{erlang_minver}
 Requires: erlang-kernel%{?_isa} >= %{erlang_minver}
@@ -42,30 +45,23 @@ Requires(preun): systemd
 
 # https://bugzilla.redhat.com/show_bug.cgi?id=998682
 # https://bugzilla.redhat.com/show_bug.cgi?id=1032595#c8
-Patch1: rabbitmq-server-0001-Use-ephemeral-port-for-probing.patch
+Patch1: rabbitmq-common-0001-Use-ephemeral-port-for-probing.patch
 
 # https://bugzilla.redhat.com/1303745
-Patch2: rabbitmq-server-0002-Unblock-receive-after-15s.patch
-Patch3: rabbitmq-server-0003-Make-slaves-wait-timeout-configurable-instead-of-har.patch
+Patch2: rabbitmq-server-0001-Make-slaves-wait-timeout-configurable-instead-of-har.patch
 
 %description
 RabbitMQ is an implementation of AMQP, the emerging standard for high
 performance enterprise messaging. The RabbitMQ server is a robust and
 scalable implementation of an AMQP broker.
 
-# We want to install into /usr/lib, even on 64-bit platforms
-%global _rabbit_libdir %{_exec_prefix}/lib/rabbitmq
-%global _rabbit_erllibdir %{_rabbit_libdir}/lib/rabbitmq_server-%{version}
-%global _plugins_state_dir %{_localstatedir}/lib/rabbitmq/plugins
-
-%global _maindir %{buildroot}%{_rabbit_erllibdir}
-
-
 %prep
 %setup -q
+
+cd deps/rabbit_common
 %patch1 -p1 -b .ephemeral
-%patch2 -p1 -b .slave_wait_timeout
-%patch3 -p1 -b .slave_wait_timeout_configurable
+cd -
+%patch2 -p1 -b .slave_wait_timeout_configurable
 
 
 %build
@@ -74,10 +70,14 @@ make %{?_smp_mflags}
 
 
 %install
-make install TARGET_DIR=%{_maindir} \
-             SBIN_DIR=%{buildroot}%{_rabbit_libdir}/bin \
-             MAN_DIR=%{buildroot}%{_mandir} \
-             DOC_INSTALL_DIR=%{buildroot}%{_pkgdocdir}
+make install \
+	DESTDIR=%{buildroot} \
+	PREFIX=%{_prefix} \
+	RMQ_ROOTDIR=%{_rabbit_libdir}
+
+make install-man \
+	DESTDIR=%{buildroot} \
+	PREFIX=%{_prefix}
 
 mkdir -p %{buildroot}%{_localstatedir}/lib/rabbitmq/mnesia
 mkdir -p %{buildroot}%{_localstatedir}/log/rabbitmq
@@ -93,12 +93,16 @@ install -p -D -m 0644 %{S:3} %{buildroot}%{_sysconfdir}/logrotate.d/rabbitmq-ser
 
 install -p -D -m 0644 docs/rabbitmq.config.example %{buildroot}%{_sysconfdir}/rabbitmq/rabbitmq.config
 
-rm %{_maindir}/LICENSE %{_maindir}/LICENSE-* %{_maindir}/INSTALL
+rm %{buildroot}%{_rabbit_libdir}/lib/rabbitmq_server-%{version}/{LICENSE,LICENSE-*,INSTALL}
 
 install -d %{buildroot}%{_localstatedir}/run/rabbitmq
 install -p -D -m 0644 %{SOURCE5} %{buildroot}%{_prefix}/lib/tmpfiles.d/%{name}.conf
 
 
+%check
+#make check
+
+
 %pre
 # create rabbitmq group
 if ! getent group rabbitmq >/dev/null; then
@@ -123,9 +127,9 @@ fi
 %systemd_preun %{name}.service
 
 # Clean out plugin activation state, both on uninstall and upgrade
-rm -rf %{_plugins_state_dir}
+rm -rf %{_localstatedir}/lib/rabbitmq/plugins
 for ext in rel script boot ; do
-    rm -f %{_rabbit_erllibdir}/ebin/rabbit.$ext
+    rm -f %{_rabbit_libdir}/lib/rabbitmq_server-%{version}/ebin/rabbit.$ext
 done
 
 
@@ -145,8 +149,7 @@ done
 %{_sbindir}/rabbitmq-plugins
 %dir %{_rabbit_libdir}
 %dir %{_rabbit_libdir}/lib
-%{_rabbit_erllibdir}
-%{_rabbit_libdir}/bin
+%{_rabbit_libdir}/lib/rabbitmq_server-%{version}/
 %{_unitdir}/%{name}.service
 # FIXME this should add dependency on "/usr/lib/ocf/resource.d/" owner
 %dir /usr/lib/ocf/resource.d/rabbitmq/
@@ -163,6 +166,9 @@ done
 
 
 %changelog
+* Thu Mar 24 2016 Peter Lemenkov <lemenkov@gmail.com> - 3.6.1-1
+- Ver. 3.6.1
+
 * Tue Feb  2 2016 Peter Lemenkov <lemenkov@gmail.com> - 3.5.7-4
 - Remove compatibility triggerun scriptlet
 - Don't wait for slave stop messages forever (patches #2, #3)
diff --git a/sources b/sources
index e8fcb38..942b132 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-7208276bd897bdc0e9aff8d5b95a0006  rabbitmq-server-3.5.7.tar.gz
+1b07bffb67ad777bcde77b337e49113b  rabbitmq-server-3.6.1.tar.xz