diff --git a/ppd/PPD.pm b/ppd/PPD.pm
index f48aba1625391c61ebe6386126f2b9e00a8d8aaa..09471c32fa40a8d811d929d5e0dd8023ab6059e5 100644
--- a/ppd/PPD.pm
+++ b/ppd/PPD.pm
@@ -243,6 +243,7 @@ sub heading($) {
 
 sub get_default($) {
 	my ($o) = @_;
+	$o->{Default} and return $o->{Default};
 	for my $val (@{$o->{Values}}) {
 		return $val->{Key} if $val->{Default};
 	}
diff --git a/ppd/PPD/Paper.pm b/ppd/PPD/Paper.pm
index 29e11a2265ddb9e2433cbfdd0ee3c17deea2face..921fe07882d913f78125af0150f80646c2cf98fb 100644
--- a/ppd/PPD/Paper.pm
+++ b/ppd/PPD/Paper.pm
@@ -82,9 +82,9 @@ sub add_papers($) {
 				Key => $k,
 				Name => ($m->{Name} // $k),
 				PS => &{$o->{PSPageSize}}($m),
-				Default => ($k eq $o->{'DefPaper'}),
 			}
-		} sort keys %real_media ]
+		} sort keys %real_media ],
+		Default => $o->{DefPaper},
 	});
 
 	option({
@@ -99,9 +99,9 @@ sub add_papers($) {
 				Key => $k,
 				Name => ($m->{Name} // $k),
 				PS => &{$o->{PSPageRegion} // $o->{PSPageSize}}($m),
-				Default => ($k eq $o->{'DefPaper'}),
 			}
-		} sort keys %real_media ]
+		} sort keys %real_media ],
+		Default => $o->{DefPaper},
 	});
 
 	option({
@@ -113,9 +113,9 @@ sub add_papers($) {
 				Key => $k,
 				Name => ($m->{Name} // $k),
 				PS => sprintf("%d %d %d %d", $margh, $margv, $m->{W} - $margh, $m->{H} - $margv),
-				Default => ($k eq $o->{'DefPaper'}),
 			}
-		} sort keys %real_media ]
+		} sort keys %real_media ],
+		Default => $o->{DefPaper},
 	});
 
 	option({
@@ -127,9 +127,9 @@ sub add_papers($) {
 				Key => $k,
 				Name => ($m->{Name} // $k),
 				PS => sprintf("%d %d", $m->{W}, $m->{H}),
-				Default => ($k eq $o->{'DefPaper'}),
 			}
-		} sort keys %real_media ]
+		} sort keys %real_media ],
+		Default => $o->{DefPaper},
 	});
 }