diff --git a/autopkgtest.py b/autopkgtest.py
index 1d012da..45e9317 100644
--- a/autopkgtest.py
+++ b/autopkgtest.py
@@ -278,14 +278,19 @@ class AutoPackageTest(object):
         previous run (i. e. not already in self.pending_tests) or there already
         is a result for it.
         '''
-        try:
-            for (tsrc, tver) in self.test_results[src][arch][1][ver][1]:
+        # check for existing results for both the requested and the current
+        # unstable version: test runs might see newly built versions which we
+        # didn't see in britney yet
+        pkg_arch_results = self.test_results.get(src, {}).get(arch, [None, {}, None])[1]
+        unstable_ver = self.britney.sources['unstable'][src][VERSION]
+        for result_ver in [ver, unstable_ver]:
+            if result_ver not in pkg_arch_results or apt_pkg.version_compare(result_ver, ver) < 0:
+                continue
+            for (tsrc, tver) in pkg_arch_results[result_ver][1]:
                 if tsrc == trigsrc and apt_pkg.version_compare(tver, trigver) >= 0:
                     self.log_verbose('There already is a result for %s/%s/%s triggered by %s/%s' %
-                                     (src, ver, arch, tsrc, tver))
+                                     (src, result_ver, arch, tsrc, tver))
                     return
-        except KeyError:
-            pass
 
         if (trigsrc, trigver) in self.pending_tests.get(src, {}).get(
                 ver, {}).get(arch, set()):
diff --git a/tests/test_autopkgtest.py b/tests/test_autopkgtest.py
index dbc1bda..7f9ef71 100644
--- a/tests/test_autopkgtest.py
+++ b/tests/test_autopkgtest.py
@@ -509,6 +509,62 @@ lightgreen 1 i386 green 2
         self.assertEqual(self.amqp_requests, set())
         self.assertEqual(self.pending_requests, '')
 
+        # next run should not trigger any new requests
+        self.do_test([], NOT_CONSIDERED, [])
+        self.assertEqual(self.amqp_requests, set())
+        self.assertEqual(self.pending_requests, '')
+
+    def test_rdepends_unbuilt_new_version_fail(self):
+        '''Unbuilt reverse dependency gets failure for newer version'''
+
+        # add unbuilt lightgreen; should request tests against the old version
+        self.data.add_src('lightgreen', True, {'Version': '2', 'Testsuite': 'autopkgtest'})
+        self.do_test(
+            [('libgreen1', {'Version': '2', 'Source': 'green', 'Depends': 'libc6'}, 'autopkgtest')],
+            NOT_CONSIDERED,
+            [r'\bgreen\b.*>1</a> to .*>2<',
+             r'\blightgreen\b.*>1</a> to .*>2<',
+             r'autopkgtest for green 2: .*amd64.*in progress.*i386.*in progress',
+             r'autopkgtest for darkgreen 1: .*amd64.*in progress.*i386.*in progress',
+             r'autopkgtest for lightgreen 1 \(2 is unbuilt/uninstallable\): .*amd64.*in progress.*i386.*in progress',
+             r'lightgreen has no up-to-date binaries on any arch'],
+            ['Valid candidate'])
+        self.assertEqual(
+            self.amqp_requests,
+            set(['debci-series-i386:green', 'debci-series-amd64:green',
+                 'debci-series-i386:lightgreen', 'debci-series-amd64:lightgreen',
+                 'debci-series-i386:darkgreen', 'debci-series-amd64:darkgreen']))
+
+        # we only get a result for lightgreen 2, not for the requested 1
+        self.swift.set_results({'autopkgtest-series': {
+            'series/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1'),
+            'series/amd64/d/darkgreen/20150101_100001@': (0, 'darkgreen 1'),
+            'series/i386/l/lightgreen/20150101_100100@': (0, 'lightgreen 0.5'),
+            'series/amd64/l/lightgreen/20150101_100100@': (0, 'lightgreen 0.5'),
+            'series/i386/l/lightgreen/20150101_100200@': (4, 'lightgreen 2'),
+            'series/amd64/l/lightgreen/20150101_100200@': (4, 'lightgreen 2'),
+            'series/i386/g/green/20150101_100200@': (0, 'green 2'),
+            'series/amd64/g/green/20150101_100201@': (0, 'green 2'),
+        }})
+        self.do_test(
+            [],
+            NOT_CONSIDERED,
+            [r'\bgreen\b.*>1</a> to .*>2<',
+             r'\blightgreen\b.*>1</a> to .*>2<',
+             r'autopkgtest for green 2: .*amd64.*Pass.*i386.*Pass',
+             r'autopkgtest for darkgreen 1: .*amd64.*Pass.*i386.*Pass',
+             r'autopkgtest for lightgreen 2 \(2 is unbuilt/uninstallable\): .*amd64.*Regression.*i386.*Regression',
+             r'lightgreen has no up-to-date binaries on any arch'],
+            ['Valid candidate'])
+
+        self.assertEqual(self.amqp_requests, set())
+        self.assertEqual(self.pending_requests, '')
+
+        # next run should not trigger any new requests
+        self.do_test([], NOT_CONSIDERED, [], ['Valid candidate'])
+        self.assertEqual(self.pending_requests, '')
+        self.assertEqual(self.amqp_requests, set())
+
     def test_hint_force_badtest(self):
         '''force-badtest hint'''