--- /usr/local/lib/perl5/5.15.2/B/Deparse.pm~	2011-09-04 17:49:22.000000000 +0200
+++ /usr/local/lib/perl5/5.15.2/B/Deparse.pm	2011-09-13 13:36:29.000000000 +0200
@@ -14,7 +14,7 @@
 	 OPf_KIDS OPf_REF OPf_STACKED OPf_SPECIAL OPf_MOD
 	 OPpLVAL_INTRO OPpOUR_INTRO OPpENTERSUB_AMPER OPpSLICE OPpCONST_BARE
 	 OPpTRANS_SQUASH OPpTRANS_DELETE OPpTRANS_COMPLEMENT OPpTARGET_MY
-	 OPpCONST_ARYBASE OPpEXISTS_SUB OPpSORT_NUMERIC OPpSORT_INTEGER
+	 OPpEXISTS_SUB OPpSORT_NUMERIC OPpSORT_INTEGER
 	 OPpSORT_REVERSE
 	 SVf_IOK SVf_NOK SVf_ROK SVf_POK SVpad_OUR SVf_FAKE SVs_RMG SVs_SMG
          CVf_METHOD CVf_LVALUE
@@ -25,8 +25,9 @@
 	 ($] < 5.008009 ? () : qw(OPpCONST_NOVER OPpPAD_STATE)),
 	 ($] < 5.009 ? 'PMf_SKIPWHITE' : qw(RXf_SKIPWHITE)),
 	 ($] < 5.011 ? 'CVf_LOCKED' : 'OPpREVERSE_INPLACE'),
-	 ($] < 5.013 ? () : 'PMf_NONDESTRUCT');
-$VERSION = "1.07";
+	 ($] < 5.013 ? () : 'PMf_NONDESTRUCT'),
+         ($] < 5.015002 ? 'OPpCONST_ARYBASE' : ());
+$VERSION = "1.08";
 use strict;
 use vars qw/$AUTOLOAD/;
 use warnings ();
@@ -36,7 +37,7 @@
     # be to fake up a dummy constant that will never actually be true.
     foreach (qw(OPpSORT_INPLACE OPpSORT_DESCEND OPpITER_REVERSED OPpCONST_NOVER
 		OPpPAD_STATE RXf_SKIPWHITE CVf_LOCKED OPpREVERSE_INPLACE
-		PMf_NONDESTRUCT)) {
+		PMf_NONDESTRUCT OPpCONST_ARYBASE)) {
 	no strict 'refs';
 	*{$_} = sub () {0} unless *{$_}{CODE};
     }
@@ -3836,7 +3837,7 @@
 sub pp_const {
     my $self = shift;
     my($op, $cx) = @_;
-    if ($op->private & OPpCONST_ARYBASE) {
+    if ($] < 5.015002 and $op->private & OPpCONST_ARYBASE) {
         return '$[';
     }
 #    if ($op->private & OPpCONST_BARE) { # trouble with `=>' autoquoting
@@ -3851,7 +3852,7 @@
     my $op = shift;
     my $type = $op->name;
     if ($type eq "const") {
-	return '$[' if $op->private & OPpCONST_ARYBASE;
+	return '$[' if $] < 5.015002 and $op->private & OPpCONST_ARYBASE;
 	return uninterp(escape_str(unback($self->const_sv($op)->as_string)));
     } elsif ($type eq "concat") {
 	my $first = $self->dq($op->first);