Index: gobject/valaccodeclassbinding.vala
===================================================================
--- gobject/valaccodeclassbinding.vala	(Revision 1763)
+++ gobject/valaccodeclassbinding.vala	(Arbeitskopie)
@@ -613,14 +613,27 @@
 				// property inherited from base class
 				
 				var ciface = new CCodeIdentifier ("iface");
+				string cl_name = cl_prop.parent_symbol.get_lower_case_cname (null);
 
-				if (prop.get_accessor != null) {
-					string cname = "%s_real_get_%s".printf (cl.get_lower_case_cname (null), prop.name);
-					init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (ciface, "get_%s".printf (prop.name)), new CCodeIdentifier (cname))));
+				if ( cl_prop.is_virtual || cl_prop.overrides ) {
+					if (prop.get_accessor != null) {
+						string cname = "%s_real_get_%s".printf (cl_name, prop.name);
+						init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (ciface, "get_%s".printf (prop.name)), new CCodeIdentifier (cname))));
+					}
+					if (prop.set_accessor != null) {
+						string cname = "%s_real_set_%s".printf (cl_name, prop.name);
+						init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (ciface, "set_%s".printf (prop.name)), new CCodeIdentifier (cname))));
+					}
 				}
-				if (prop.set_accessor != null) {
-					string cname = "%s_real_set_%s".printf (cl.get_lower_case_cname (null), prop.name);
-					init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (ciface, "set_%s".printf (prop.name)), new CCodeIdentifier (cname))));
+				else {
+					if (prop.get_accessor != null) {
+						string cname = "%s_get_%s".printf (cl_name, prop.name);
+						init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (ciface, "get_%s".printf (prop.name)), new CCodeIdentifier (cname))));
+					}
+					if (prop.set_accessor != null) {
+						string cname = "%s_set_%s".printf (cl_name, prop.name);
+						init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (ciface, "set_%s".printf (prop.name)), new CCodeIdentifier (cname))));
+					}
 				}
 			}
 		}
