--- src/rac_data.c.orig	2012-09-23 18:19:22.000000000 +0200
+++ src/rac_data.c	2012-11-29 21:00:53.000000000 +0100
@@ -212,7 +212,8 @@
     char char_offset[16];
     char index[32];
     int found = 0;
-    rac_record racdata;
+    char buffer[sizeof(rac_record)];
+    rac_record *racdata = (rac_record *)buffer;
     /*char        filler[8];*/
     char amacall_path[MAX_VALUE];
 
@@ -220,7 +221,7 @@
 
 
     xastir_snprintf(index, sizeof(index)," ");
-    xastir_snprintf(racdata.callsign, sizeof(racdata.callsign)," ");
+    xastir_snprintf(racdata->callsign, sizeof(racdata->callsign)," ");
 
     /* ====================================================================    */
     /*    Search thru the index, get the RBA                */
@@ -257,19 +258,19 @@
         if (callsign[5] == '-')
             (void)chomp(callsign,5);
 
-        while (!feof(fdb) && strncmp((char *)&racdata, callsign, 6) < 0)
+        while (!feof(fdb) && strncmp(buffer, callsign, 6) < 0)
 
 //WE7U
 // Problem here:  We're sticking 8 bytes too many into racdata!
-            rc = fgets((char *)&racdata, sizeof(racdata), fdb);
+            rc = fgets(buffer, sizeof(buffer), fdb);
 
     } else
         fprintf(stderr,"Search:Could not open RAC data base: %s\n", get_data_base_dir("fcc/AMACALL.LST") );
 
     /*  || (callsign[5] == '-' && strncmp((char *)&racdata,callsign,5) < 0)) */
-    (void)chomp(racdata.callsign, 6);
+    (void)chomp(racdata->callsign, 6);
 
-    if (!strncmp((char *)racdata.callsign, callsign, 6)) {
+    if (!strncmp(racdata->callsign, callsign, 6)) {
         found = 1;
 
 // Some of these cause problems on 64-bit processors, so commented
@@ -293,82 +294,82 @@
         xastir_snprintf(data->callsign,
             sizeof(data->callsign),
             "%s",
-            racdata.callsign);
+            racdata->callsign);
 
         xastir_snprintf(data->first_name,
             sizeof(data->first_name),
             "%s",
-            racdata.first_name);
+            racdata->first_name);
  
         xastir_snprintf(data->last_name,
             sizeof(data->last_name),
             "%s",
-            racdata.last_name);
+            racdata->last_name);
  
         xastir_snprintf(data->address,
             sizeof(data->address),
             "%s",
-            racdata.address);
+            racdata->address);
  
         xastir_snprintf(data->city,
             sizeof(data->city),
             "%s",
-            racdata.city);
+            racdata->city);
  
         xastir_snprintf(data->province,
             sizeof(data->province),
             "%s",
-            racdata.province);
+            racdata->province);
  
         xastir_snprintf(data->postal_code,
             sizeof(data->postal_code),
             "%s",
-            racdata.postal_code);
+            racdata->postal_code);
  
         xastir_snprintf(data->qual_a,
             sizeof(data->qual_a),
             "%s",
-            racdata.qual_a);
+            racdata->qual_a);
  
         xastir_snprintf(data->qual_b,
             sizeof(data->qual_b),
             "%s",
-            racdata.qual_b);
+            racdata->qual_b);
  
         xastir_snprintf(data->qual_c,
             sizeof(data->qual_c),
             "%s",
-            racdata.qual_c);
+            racdata->qual_c);
  
         xastir_snprintf(data->qual_d,
             sizeof(data->qual_d),
             "%s",
-            racdata.qual_d);
+            racdata->qual_d);
  
         xastir_snprintf(data->club_name,
             sizeof(data->club_name),
             "%s",
-            racdata.club_name);
+            racdata->club_name);
  
         xastir_snprintf(data->club_address,
             sizeof(data->club_address),
             "%s",
-            racdata.club_address);
+            racdata->club_address);
  
         xastir_snprintf(data->club_city,
             sizeof(data->club_city),
             "%s",
-            racdata.club_city);
+            racdata->club_city);
  
         xastir_snprintf(data->club_province,
             sizeof(data->club_province),
             "%s",
-            racdata.club_province);
+            racdata->club_province);
  
         xastir_snprintf(data->club_postal_code,
             sizeof(data->club_postal_code),
             "%s",
-            racdata.club_postal_code);
+            racdata->club_postal_code);
  
     }
     (void)fclose(fdb);
