diff --git a/CHANGES b/CHANGES
index a90606b..200fc1b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,17 +1,19 @@
 0.17.0
 ------
 
-* This release is the last one to support Python 2.7.
+* This release is the last to support Python 2.7.
 * Fixed issue when `response.iter_content` when `chunk_size=None` entered infinite loop
 * Fixed issue when `passthru_prefixes` persisted across tests.
   Now `add_passthru` is valid only within a context manager or for a single function and
   cleared on exit
-* Deprecate ``match_querystring`` argument in ``Response`` and ``CallbackResponse``.
+* Deprecate `match_querystring` argument in `Response`` and `CallbackResponse`.
   Use `responses.matchers.query_param_matcher` or `responses.matchers.query_string_matcher`
 * Added support for non-UTF-8 bytes in `responses.matchers.multipart_matcher`
 * Added `responses.registries`. Now user can create custom registries to
   manipulate the order of responses in the match algorithm
   `responses.activate(registry=CustomRegistry)`
+* Fixed issue with response match when requests were performed between adding responses with
+  same URL. See Issue #212
 
 0.16.0
 ------
diff --git a/responses/registries.py b/responses/registries.py
index 6546798..1e0f8c5 100644
--- a/responses/registries.py
+++ b/responses/registries.py
@@ -20,6 +20,11 @@ class FirstMatchRegistry(object):
                     found = i
                     found_match = response
                 else:
+                    if self.registered[found].call_count > 0:
+                        # that assumes that some responses were added between calls
+                        self.registered.pop(found)
+                        found_match = response
+                        break
                     # Multiple matches found.  Remove & return the first response.
                     return self.registered.pop(found), match_failed_reasons
             else:

diff --git a/responses/test_responses.py b/responses/test_responses.py
index e076ec7..92dfb43 100644
--- a/responses/test_responses.py
+++ b/responses/test_responses.py
@@ -1405,15 +1405,48 @@ def test_multiple_responses():
     def run():
         responses.add(responses.GET, "http://example.com", body="test")
         responses.add(responses.GET, "http://example.com", body="rest")
+        responses.add(responses.GET, "http://example.com", body="fest")
+        responses.add(responses.GET, "http://example.com", body="best")
 
         resp = requests.get("http://example.com")
         assert_response(resp, "test")
+
         resp = requests.get("http://example.com")
         assert_response(resp, "rest")
+
+        resp = requests.get("http://example.com")
+        assert_response(resp, "fest")
+
+        resp = requests.get("http://example.com")
+        assert_response(resp, "best")
+
         # After all responses are used, last response should be repeated
         resp = requests.get("http://example.com")
+        assert_response(resp, "best")
+
+    run()
+    assert_reset()
+
+
+def test_multiple_responses_intermixed():
+    @responses.activate
+    def run():
+        responses.add(responses.GET, "http://example.com", body="test")
+        resp = requests.get("http://example.com")
+        assert_response(resp, "test")
+
+        responses.add(responses.GET, "http://example.com", body="rest")
+        resp = requests.get("http://example.com")
         assert_response(resp, "rest")
 
+        responses.add(responses.GET, "http://example.com", body="best")
+        resp = requests.get("http://example.com")
+        assert_response(resp, "best")
+
+        # After all responses are used, last response should be repeated
+        resp = requests.get("http://example.com")
+        assert_response(resp, "best")
+
     run()
     assert_reset()
 
@@ -1916,3 +1949,21 @@ def test_registry_reset():
 
     run()
     assert_reset()
+
+
+def test_requests_between_add():
+    @responses.activate
+    def run():
+        responses.add(responses.GET, "https://example.com/", json={"response": "old"})
+        assert requests.get("https://example.com/").content == b'{"response": "old"}'
+        assert requests.get("https://example.com/").content == b'{"response": "old"}'
+        assert requests.get("https://example.com/").content == b'{"response": "old"}'
+
+        responses.add(responses.GET, "https://example.com/", json={"response": "new"})
+
+        assert requests.get("https://example.com/").content == b'{"response": "new"}'
+        assert requests.get("https://example.com/").content == b'{"response": "new"}'
+        assert requests.get("https://example.com/").content == b'{"response": "new"}'
+
+    run()
+    assert_reset()

Requesting a URL, then changing the response will return the old response
The documentation states:
> You can also add multiple responses for the same url: ....

However, this is not true if you interleave adding and requesting responses:
```py
>>> import responses
>>> import requests
>>> 
>>> responses.start()
>>> 
>>> responses.add(responses.GET, "https://example.com/",
...     json={'response': 'old'}
... )
>>> requests.get('https://example.com/').content
b'{"response": "old"}'
>>> 
>>> responses.add(responses.GET, "https://example.com/",
...     json={'response': 'new'}
... )
>>> 
>>> 
>>> requests.get('https://example.com/').content
b'{"response": "old"}'
>>> requests.get('https://example.com/').content
b'{"response": "new"}'
>>> requests.get('https://example.com/').content
b'{"response": "new"}'
```

Expected result: After adding the "new" response, a "new" response is returned in the subsequent request.

Requests version: '2.19.1', Python 3.6.6
responses/test_responses.py::test_multiple_responses_intermixed responses/test_responses.py::test_requests_between_add
responses/test_responses.py::test_response responses/test_responses.py::test_response_encoded responses/test_responses.py::test_response_with_instance responses/test_responses.py::test_replace[http://example.com/two-http://example.com/two] responses/test_responses.py::test_replace[original1-replacement1] responses/test_responses.py::test_replace[http://example\\.com/two-http://example\\.com/two] responses/test_responses.py::test_replace_error[http://example.com/one-http://example\\.com/one] responses/test_responses.py::test_replace_error[http://example\\.com/one-http://example.com/one] responses/test_responses.py::test_replace_response_object_error responses/test_responses.py::test_upsert_replace[http://example.com/two-http://example.com/two] responses/test_responses.py::test_upsert_replace[original1-replacement1] responses/test_responses.py::test_upsert_replace[http://example\\.com/two-http://example\\.com/two] responses/test_responses.py::test_upsert_add[http://example.com/two-http://example.com/two] responses/test_responses.py::test_upsert_add[original1-replacement1] responses/test_responses.py::test_upsert_add[http://example\\.com/two-http://example\\.com/two] responses/test_responses.py::test_remove responses/test_responses.py::test_response_equality[args10-kwargs10-args20-kwargs20-True] responses/test_responses.py::test_response_equality[args11-kwargs11-args21-kwargs21-False] responses/test_responses.py::test_response_equality[args12-kwargs12-args22-kwargs22-False] responses/test_responses.py::test_response_equality[args13-kwargs13-args23-kwargs23-True] responses/test_responses.py::test_response_equality_different_objects responses/test_responses.py::test_connection_error responses/test_responses.py::test_match_querystring responses/test_responses.py::test_match_querystring_empty responses/test_responses.py::test_match_querystring_error responses/test_responses.py::test_match_querystring_regex responses/test_responses.py::test_match_querystring_error_regex responses/test_responses.py::test_match_querystring_auto_activates responses/test_responses.py::test_match_querystring_missing_key responses/test_responses.py::test_accept_string_body responses/test_responses.py::test_accept_json_body responses/test_responses.py::test_no_content_type responses/test_responses.py::test_arbitrary_status_code responses/test_responses.py::test_throw_connection_error_explicit responses/test_responses.py::test_callback responses/test_responses.py::test_callback_deprecated_argument responses/test_responses.py::test_callback_exception_result responses/test_responses.py::test_callback_exception_body responses/test_responses.py::test_callback_no_content_type responses/test_responses.py::test_callback_content_type_dict responses/test_responses.py::test_callback_matchers responses/test_responses.py::test_callback_matchers_fail responses/test_responses.py::test_callback_content_type_tuple responses/test_responses.py::test_regular_expression_url responses/test_responses.py::test_base_response_get_response responses/test_responses.py::test_custom_adapter responses/test_responses.py::test_responses_as_context_manager responses/test_responses.py::test_activate_doesnt_change_signature responses/test_responses.py::TestFixtures::test_function responses/test_responses.py::TestFixtures::test_function_decorated responses/test_responses.py::test_activate_mock_interaction responses/test_responses.py::test_activate_doesnt_change_signature_with_return_type responses/test_responses.py::test_activate_doesnt_change_signature_for_method responses/test_responses.py::test_response_cookies responses/test_responses.py::test_response_cookies_secure responses/test_responses.py::test_response_cookies_multiple responses/test_responses.py::test_response_cookies_session[True-True] responses/test_responses.py::test_response_cookies_session[True-False] responses/test_responses.py::test_response_cookies_session[True-None] responses/test_responses.py::test_response_cookies_session[False-True] responses/test_responses.py::test_response_cookies_session[False-False] responses/test_responses.py::test_response_cookies_session[False-None] responses/test_responses.py::test_response_cookies_session[None-True] responses/test_responses.py::test_response_cookies_session[None-False] responses/test_responses.py::test_response_cookies_session[None-None] responses/test_responses.py::test_response_callback responses/test_responses.py::test_response_filebody responses/test_responses.py::test_use_stream_twice_to_double_raw_io responses/test_responses.py::test_assert_all_requests_are_fired responses/test_responses.py::test_allow_redirects_samehost responses/test_responses.py::test_handles_unicode_querystring responses/test_responses.py::test_handles_unicode_url responses/test_responses.py::test_handles_unicode_body responses/test_responses.py::test_handles_buffered_reader_body responses/test_responses.py::test_headers responses/test_responses.py::test_content_length_error responses/test_responses.py::test_stream_with_none_chunk_size responses/test_responses.py::test_legacy_adding_headers responses/test_responses.py::test_auto_calculate_content_length_string_body responses/test_responses.py::test_auto_calculate_content_length_bytes_body responses/test_responses.py::test_auto_calculate_content_length_json_body responses/test_responses.py::test_auto_calculate_content_length_unicode_body responses/test_responses.py::test_auto_calculate_content_length_doesnt_work_for_buffered_reader_body responses/test_responses.py::test_multiple_responses responses/test_responses.py::test_multiple_urls responses/test_responses.py::test_multiple_methods responses/test_responses.py::test_passthrough_flag responses/test_responses.py::test_passthrough_response responses/test_responses.py::test_passthrough_response_stream responses/test_responses.py::test_passthru_prefixes responses/test_responses.py::test_passthru responses/test_responses.py::test_passthru_regex responses/test_responses.py::test_passthru_does_not_persist_across_tests responses/test_responses.py::test_method_named_param responses/test_responses.py::test_passthru_unicode responses/test_responses.py::test_custom_target responses/test_responses.py::test_cookies_from_headers responses/test_responses.py::test_request_param[http://example.com] responses/test_responses.py::test_request_param[http://example.com/some/path] responses/test_responses.py::test_request_param[http://example.com/other/path/] responses/test_responses.py::test_request_param_with_multiple_values_for_the_same_key responses/test_responses.py::test_assert_call_count[http://example.com] responses/test_responses.py::test_assert_call_count[http://example.com?hello=world] responses/test_responses.py::test_fail_request_error responses/test_responses.py::test_response_representations[response_params0-<Response(url='http://example.com/' responses/test_responses.py::test_response_representations[response_params1-<Response(url='http://another-domain.com/' responses/test_responses.py::test_response_representations[response_params2-<Response(url='http://abcd.com/' responses/test_responses.py::test_mocked_responses_list_registered responses/test_responses.py::test_rfc_compliance[http://service-A/foo?q=fizz-http://service-a/foo?q=fizz] responses/test_responses.py::test_rfc_compliance[http://service-a/foo-http://service-A/foo] responses/test_responses.py::test_rfc_compliance[http://someHost-AwAy/-http://somehost-away/] responses/test_responses.py::test_rfc_compliance[http://fizzbuzz/foo-http://fizzbuzz/foo] responses/test_responses.py::test_set_registry_not_empty responses/test_responses.py::test_set_registry responses/test_responses.py::test_set_registry_context_manager responses/test_responses.py::test_registry_reset