diff --git a/src/mem/cache/prefetch/queued.cc b/src/mem/cache/prefetch/queued.cc
index f48ea18..bce6fbb 100644
--- a/src/mem/cache/prefetch/queued.cc
+++ b/src/mem/cache/prefetch/queued.cc
@@ -93,14 +93,20 @@
         // Block align prefetch address
         addr_prio.first = blockAddress(addr_prio.first);
 
-        PrefetchInfo new_pfi(pfi,addr_prio.first);
+        if (samePage(pfi.getAddr(), addr_prio.first)) {
+            PrefetchInfo new_pfi(pfi,addr_prio.first);
 
-        pfIdentified++;
-        DPRINTF(HWPrefetch, "Found a pf candidate addr: %#x, "
-                "inserting into prefetch queue.\n", new_pfi.getAddr());
+            pfIdentified++;
+            DPRINTF(HWPrefetch, "Found a pf candidate addr: %#x, "
+                    "inserting into prefetch queue.\n", new_pfi.getAddr());
 
-        // Create and insert the request
-        insert(pkt, new_pfi, addr_prio.second);
+            // Create and insert the request
+            insert(pkt, new_pfi, addr_prio.second);
+        } else {
+            // Record the number of page crossing prefetches generate
+            pfSpanPage += 1;
+            DPRINTF(HWPrefetch, "Ignoring page crossing prefetch.\n");
+        }
     }
 }
 
diff --git a/src/mem/cache/prefetch/stride.cc b/src/mem/cache/prefetch/stride.cc
index 5d00901..caddc75 100644
--- a/src/mem/cache/prefetch/stride.cc
+++ b/src/mem/cache/prefetch/stride.cc
@@ -195,15 +195,7 @@
             }
 
             Addr new_addr = pf_addr + d * prefetch_stride;
-            if (samePage(pf_addr, new_addr)) {
-                DPRINTF(HWPrefetch, "Queuing prefetch to %#x.\n", new_addr);
-                addresses.push_back(AddrPriority(new_addr, 0));
-            } else {
-                // Record the number of page crossing prefetches generated
-                pfSpanPage += degree - d + 1;
-                DPRINTF(HWPrefetch, "Ignoring page crossing prefetch.\n");
-                return;
-            }
+            addresses.push_back(AddrPriority(new_addr, 0));
         }
     } else {
         // Miss in table
diff --git a/src/mem/cache/prefetch/tagged.cc b/src/mem/cache/prefetch/tagged.cc
index a360cc6..1623817 100644
--- a/src/mem/cache/prefetch/tagged.cc
+++ b/src/mem/cache/prefetch/tagged.cc
@@ -51,13 +51,7 @@
 
     for (int d = 1; d <= degree; d++) {
         Addr newAddr = blkAddr + d*(blkSize);
-        if (!samePage(blkAddr, newAddr)) {
-            // Count number of unissued prefetches due to page crossing
-            pfSpanPage += degree - d + 1;
-            return;
-        } else {
-            addresses.push_back(AddrPriority(newAddr,0));
-        }
+        addresses.push_back(AddrPriority(newAddr,0));
     }
 }
 
