Index: trunk/lib/Ripper.pm
===================================================================
--- trunk/lib/Ripper.pm	(revision 40)
+++ trunk/lib/Ripper.pm	(revision 41)
@@ -4,4 +4,5 @@
 
 use Tracks;
+use DiscFlacFile;
 
 use File::Temp qw{tempdir};
@@ -20,5 +21,5 @@
 
 sub rip_to_flac {
-    my ($self, $archive_flac) = @_;
+    my ($self, $archive_flac, $tags) = @_;
 
     $self->tracks(Tracks->new);
@@ -50,5 +51,13 @@
     # copy to permanent location
     copy($flac_file, $archive_flac);
-    system 'metaflac', '--set-tag', "MUSICBRAINZ_DISCID=$discid", $archive_flac;
+
+    # tag the archive flac
+    $tags ||= {};
+    $tags->{MUSICBRAINZ_DISCID} = $discid;
+    my $flac_disc = DiscFlacFile->new({ file => $archive_flac });
+    $flac_disc->flac->{tags}{$_} = $tags->{$_} foreach keys %{$tags};
+    $flac_disc->flac->write;
+
+    return $flac_disc;
 }
 
