--- ../frozen-bubble.orig	Sat Nov  6 23:59:55 2004
+++ ../frozen-bubble	Sun Nov  7 00:02:38 2004
@@ -307,7 +307,11 @@
 sub add_image($) {
     my $file = "$FPATH/gfx/$_[0]";
     my $img = SDL::Surface->new(-name => $file);
-    $img->{-surface} or die "FATAL: Couldn't load `$file' into a SDL::Surface.\n";
+    if (UNIVERSAL::isa($img, "HASH")) {
+	$img->{-surface} or die "FATAL: Couldn't load `$file' into a SDL::Surface.\n";
+    } else {
+	$img or die "FATAL: Couldn't load `$file' into a SDL::Surface.\n";
+    }
     add_default_rect($img);
     return $img;
 }
@@ -1473,7 +1477,11 @@
 	}
 
 	put_image($imgbin{hiscore_frame}, $high_posx - 7, $high_posy - 6);
-	fb_c_stuff::shrink($app->{-surface}, $background->display_format->{-surface}, $high_posx, $high_posy, $high_rect->{-rect}, 4);
+	if (UNIVERSAL::isa($app, "HASH")) {
+	    fb_c_stuff::shrink($app->{-surface}, $background->display_format->{-surface}, $high_posx, $high_posy, $high_rect->{-rect}, 4);
+	} else {
+	    fb_c_stuff::shrink($$app, ${$background->display_format}, $high_posx, $high_posy, $$high_rect, 4);
+	}
 	$centered_print->($high_posx, $high_posy,    $high->{name});
 	$centered_print->($high_posx, $high_posy+20, $high->{level} eq 'WON' ? "WON!" : "LVL-".$high->{level});
 	my $min = int($high->{time}/60);
@@ -1641,8 +1649,10 @@
     if ($graphics_level == 1) {
 	$background->blit($apprects{main}, $app, $apprects{main});
 	$app->flip;
-    } else {
+    } elsif (UNIVERSAL::isa($app, "HASH")) {
 	fb_c_stuff::effect($app->{-surface}, $background->display_format->{-surface});
+    } else {
+	fb_c_stuff::effect($$app, ${$background->display_format});
     }
 
     $display_on_app_disabled = 0;
