Index: code/starfield/starfield.cpp
===================================================================
--- code/starfield/starfield.cpp	(revision 8561)
+++ code/starfield/starfield.cpp	(working copy)
@@ -103,7 +103,9 @@
 	int n_verts;
 	vertex *verts;
 
-	starfield_bitmap_instance() { memset(this, 0, sizeof(starfield_bitmap_instance)); star_bitmap_index = -1; };
+	starfield_bitmap_instance() : scale_x(1.0f), scale_y(1.0f), div_x(1), div_y(1), star_bitmap_index(-1), n_verts(0), verts(NULL) {
+        angles ang = { 0.0f, 0.0f, 0.0f };
+    }
 } starfield_bitmap_instance;
 
 // for drawing cool stuff on the background - comes from a table
@@ -819,14 +821,8 @@
 			mprintf(("Adding default sun.\n"));
 
 			starfield_bitmap_instance def_sun;
-		//	memset( &def_sun, 0, sizeof(starfield_bitmap_instance) );
 
 			// stuff some values
-			def_sun.star_bitmap_index = 0;
-			def_sun.scale_x = 1.0f;
-			def_sun.scale_y = 1.0f;
-			def_sun.div_x = 1;
-			def_sun.div_y = 1;
 			def_sun.ang.h = fl_radians(60.0f);
 
 			Suns.push_back(def_sun);
@@ -2199,7 +2195,6 @@
 	Assert(sun_ptr != NULL);
 
 	// copy information
-	memset(&sbi, 0, sizeof(starfield_bitmap_instance));
 	sbi.ang.p = sun_ptr->ang.p;
 	sbi.ang.b = sun_ptr->ang.b;
 	sbi.ang.h = sun_ptr->ang.h;
@@ -2287,10 +2282,9 @@
 	int idx;
 	starfield_bitmap_instance sbi;
 
-	Assert( sle != NULL );
+	Assert(sle != NULL);
 
 	// copy information
-	memset(&sbi, 0, sizeof(starfield_bitmap_instance));
 	sbi.ang.p = sle->ang.p;
 	sbi.ang.b = sle->ang.b;
 	sbi.ang.h = sle->ang.h;
@@ -2510,7 +2504,14 @@
 	Assert( index >= 0 );
 	Assert( sbi_new != NULL );
 
-	memcpy( &sbi, sbi_new, sizeof(starfield_bitmap_instance) );
+    // copy information
+    sbi.ang.p = sbi_new->ang.p;
+	sbi.ang.b = sbi_new->ang.b;
+	sbi.ang.h = sbi_new->ang.h;
+	sbi.scale_x = sbi_new->scale_x;
+	sbi.scale_y = sbi_new->scale_y;
+	sbi.div_x = sbi_new->div_x;
+	sbi.div_y = sbi_new->div_y;
 
 	if (is_a_sun) {
 		idx = stars_find_sun((char*)name);
