Index: properties/nm-vpnc.c
===================================================================
--- properties/nm-vpnc.c	(Revision 4295)
+++ properties/nm-vpnc.c	(Arbeitskopie)
@@ -500,7 +500,28 @@
 	g_signal_connect (G_OBJECT (widget), "toggled",
 	                  (GCallback) show_toggled_cb,
 	                  self);
+	
+	/* hybrid auth */
 
+	widget = glade_xml_get_widget (priv->xml, "enable_hybrid_checkbutton");
+	g_return_val_if_fail (widget != NULL, FALSE);
+	if (s_vpn) {
+		value = nm_setting_vpn_get_data_item (s_vpn, NM_VPNC_KEY_AUTHMODE);
+		if (value && !strcmp("hybrid",value))
+			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
+	}
+	g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (stuff_changed_cb), self);
+
+	widget = glade_xml_get_widget (priv->xml, "ca_file_entry");
+	g_return_val_if_fail (widget != NULL, FALSE);
+	gtk_size_group_add_widget (priv->group, GTK_WIDGET (widget));
+	if (s_vpn) {
+		value = nm_setting_vpn_get_data_item (s_vpn, NM_VPNC_KEY_CA_FILE);
+		if (value && strlen (value))
+			gtk_entry_set_text (GTK_ENTRY (widget), value);
+	}
+	g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (stuff_changed_cb), self);
+
 	return TRUE;
 }
 
@@ -640,7 +661,23 @@
 		if (str && strlen (str) && (gpw_type != PW_TYPE_UNUSED))
 			nm_setting_vpn_add_secret (s_vpn, NM_VPNC_KEY_SECRET, str);
 	}
+	
+	/* hybrid auth */
+	widget = glade_xml_get_widget (priv->xml, "enable_hybrid_checkbutton");
+	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) {
+		nm_setting_vpn_add_data_item (s_vpn,
+				g_strdup (NM_VPNC_KEY_AUTHMODE),
+				g_strdup ("hybrid"));
+	}
 
+	widget = glade_xml_get_widget (priv->xml, "ca_file_entry");
+	str = (char *) gtk_entry_get_text (GTK_ENTRY (widget));
+	if (str && strlen (str)) {
+		nm_setting_vpn_add_data_item (s_vpn,
+		                     g_strdup (NM_VPNC_KEY_CA_FILE),
+		                     g_strdup (str));
+	}
+
 	nm_connection_add_setting (connection, NM_SETTING (s_vpn));
 	return TRUE;
 }
