diff --git a/src/oud2_parser.pl b/src/oud2_parser.pl
index ac8c7fdf7535d6f6d484c13575c7036f1588f28e..89d0f3292a4e7f4778542e923333ad22cb069177 100644
--- a/src/oud2_parser.pl
+++ b/src/oud2_parser.pl
@@ -247,7 +247,7 @@ foreach my $file (@trains)
     $frame{'id'} = $basename;
     Frame::frame_info \%frame;
     
-    $master{$basename} = \%frame;
+    $master{'rosen'}{$basename} = \%frame;
     
     close $dia_file;
 }
@@ -261,13 +261,14 @@ foreach my $file (@trains)
 #     > maybe use a null footpath?
 # TODO overall, find more generic criteria for matching two similar stations
 my @master_ekis;
-foreach my $frame (values %master)
+foreach my $frame (values %{ $master{'rosen'} })
 {
     my @old_ekis = @{ $frame->{'eki'} };
     my @new_ekis;
+    my @new_refs;
     my $index = 0;
     my $update_index = 1;
-    for (my $i = 0; $i < $#old_ekis; $i++)
+    for (my $i = 0; $i <= $#old_ekis; $i++)
     {
 	$update_index = 1;
 
@@ -308,7 +309,11 @@ foreach my $frame (values %master)
 	if ($update_index) { $index++; }
     }
 
+    # Replace old station structures with references
+    # The order is conserved so there's no need to modify {'jikoku'} in {'dia'}
+    $frame->{'eki'} = \@new_ekis;
+    
     push @master_ekis, @new_ekis;
 }
 
-p @master_ekis;
+$master{'eki_index'} = @master_ekis;