           new_queue = :queue.in_r({:subscribe, other_channels, receiver}, new_queue)
         end
 
+        send receiver, {:redix_pubsub, :psubscribe, channel}
+
         %{s | queue: new_queue}
       _ ->
         raise "oops"

          new_queue = :queue.in_r({:subscribe, other_channels, receiver}, new_queue)
        end

        %{s | queue: new_queue}
      _ ->
        raise "oops"


  defp new_pubsub_msg(s, ["punsubscribe", channel, _count]) do
    case :queue.out(s.queue) do
      {{:value, {:punsubscribe, [^channel|other_channels], receiver}}, new_queue} ->
        s = update_in s.pubsub_clients, fn(clients) ->
          Map.update!(clients, channel, &List.delete(&1, receiver))
        end

        if other_channels != [] do
          new_queue = :queue.in_r({:punsubscribe, other_channels, receiver}, new_queue)
        end

        send receiver, {:redix_pubsub, :punsubscribe, channel}

        %{s | queue: new_queue}
      _ ->
