---
 lib/Data/Dump/Streamer.pm |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/lib/Data/Dump/Streamer.pm b/lib/Data/Dump/Streamer.pm
index a7f16fb..1311eab 100644
--- a/lib/Data/Dump/Streamer.pm
+++ b/lib/Data/Dump/Streamer.pm
@@ -127,7 +127,7 @@ BEGIN {
         # As I write this, 5.13.10 doesn't exist so I'm guessing that
         # we can begin using the ordinary core function again.
         eval q[
-            use re qw(regexp_pattern);
+            use re qw(regexp_pattern is_regexp);
             *regex= *regexp_pattern;
         ] or die $@;
     }
@@ -135,7 +135,7 @@ BEGIN {
         # Perl-5.13.6 through perl-5.13.9 began returning modifier
         # flags that weren't yet legal at the time.
         eval q[
-            use re qw(regexp_pattern);
+            use re qw(regexp_pattern is_regexp);
             sub regex {
                 if (wantarray) {
                     my ($pat,$mod) = regexp_pattern($_[0]);
@@ -153,11 +153,14 @@ BEGIN {
     }
     elsif ($]>=5.009004) {
         eval q[
-            use re qw(regexp_pattern);
+            use re qw(regexp_pattern is_regexp);
             *regex= *regexp_pattern;
             1;
         ] or die $@;
     }
+    else {
+      eval q[sub is_regexp($) { defined regex($_[0]) }];
+    }
     if ($]<=5.008) {
         *hidden_keys=sub(\%)  { return () };
         *legal_keys=sub(\%)   { return keys %{$_[0]} };
@@ -2827,7 +2830,7 @@ sub _dump_rv {
         $idx=$self->{ref}{$addr};
         $type=reftype($item);
         $class=blessed($item);
-        $class=undef if $class and $class eq 'Regexp' and regex $item;
+        $class=undef if $class and $class eq 'Regexp' and is_regexp $item;
 
         $DEBUG and
         printf "_dump_rv %d %s %#x\n",$depth,$name,$addr;
-- 
1.7.10.4