diff -up NetworkManager-0.8.997/src/nm-udev-manager.c.udev-ctc NetworkManager-0.8.997/src/nm-udev-manager.c
--- NetworkManager-0.8.997/src/nm-udev-manager.c.udev-ctc	2011-03-19 19:10:34.000000000 +0100
+++ NetworkManager-0.8.997/src/nm-udev-manager.c	2011-03-29 15:05:27.000000000 +0200
@@ -423,8 +423,14 @@ net_add (NMUdevManager *self, GUdevDevic
 
 	g_return_if_fail (device != NULL);
 
+	iface = g_udev_device_get_name (device);
+	if (!iface) {
+		nm_log_dbg (LOGD_HW, "failed to get device's interface");
+		return;
+	}
+
 	etype = g_udev_device_get_sysfs_attr_as_int (device, "type");
-	if (etype != 1) {
+	if ((etype != 1) && ((!strncmp (iface, "ctc", 3)) && (etype != 256))) {
 		nm_log_dbg (LOGD_HW, "ignoring interface with type %d", etype);
 		return; /* Not using ethernet encapsulation, don't care */
 	}
@@ -442,12 +448,6 @@ net_add (NMUdevManager *self, GUdevDevic
 		return;
 	}
 
-	iface = g_udev_device_get_name (device);
-	if (!iface) {
-		nm_log_dbg (LOGD_HW, "failed to get device's interface");
-		return;
-	}
-
 	g_signal_emit (self, signals[DEVICE_ADDED], 0, device, device_creator);
 }
 
diff -up NetworkManager-0.8.997/libnm-util/nm-setting-wired.c.s390-ctc NetworkManager-0.8.997/libnm-util/nm-setting-wired.c
--- NetworkManager-0.8.997/libnm-util/nm-setting-wired.c.s390-ctc	2011-01-03 00:18:56.000000000 +0100
+++ NetworkManager-0.8.997/libnm-util/nm-setting-wired.c	2011-03-29 14:51:09.000000000 +0200
@@ -107,7 +107,7 @@ static const char *valid_s390_opts[] = {
 	"route6", "fake_broadcast", "broadcast_mode", "canonical_macaddr",
 	"checksumming", "sniffer", "large_send", "ipato_enable", "ipato_invert4",
 	"ipato_add4", "ipato_invert6", "ipato_add6", "vipa_add4", "vipa_add6",
-	"rxip_add4", "rxip_add6", "lancmd_timeout",
+	"rxip_add4", "rxip_add6", "lancmd_timeout", "ctcprot", 
 	NULL
 };
 
@@ -197,7 +197,7 @@ nm_setting_wired_get_s390_subchannels (N
  * @setting: the #NMSettingWired
  *
  * Returns the s390 device type this connection should apply to.  Will be one
- * of 'qeth', 'lcs', or 'ctcm'.
+ * of 'qeth', 'lcs', or 'ctc'.
  *
  * Returns: the s390 device type
  **/
@@ -361,7 +361,7 @@ verify (NMSetting *setting, GSList *all_
 	NMSettingWiredPrivate *priv = NM_SETTING_WIRED_GET_PRIVATE (setting);
 	const char *valid_ports[] = { "tp", "aui", "bnc", "mii", NULL };
 	const char *valid_duplex[] = { "half", "full", NULL };
-	const char *valid_nettype[] = { "qeth", "lcs", "ctcm", NULL };
+	const char *valid_nettype[] = { "qeth", "lcs", "ctc", NULL };
 	GHashTableIter iter;
 	const char *key, *value;
 
diff -up NetworkManager-0.8.997/src/settings/plugins/ifcfg-rh/common.h.s390-ctc NetworkManager-0.8.997/src/settings/plugins/ifcfg-rh/common.h
--- NetworkManager-0.8.997/src/settings/plugins/ifcfg-rh/common.h.s390-ctc	2011-03-19 19:10:34.000000000 +0100
+++ NetworkManager-0.8.997/src/settings/plugins/ifcfg-rh/common.h	2011-03-29 14:51:09.000000000 +0200
@@ -44,6 +44,7 @@
 #define TYPE_ETHERNET "Ethernet"
 #define TYPE_WIRELESS "Wireless"
 #define TYPE_BRIDGE   "Bridge"
+#define TYPE_CTC      "ctc"
 
 #define SECRET_FLAG_AGENT "user"
 #define SECRET_FLAG_NOT_SAVED "ask"
diff -up NetworkManager-0.8.997/src/settings/plugins/ifcfg-rh/reader.c.s390-ctc NetworkManager-0.8.997/src/settings/plugins/ifcfg-rh/reader.c
--- NetworkManager-0.8.997/src/settings/plugins/ifcfg-rh/reader.c.s390-ctc	2011-03-19 19:10:34.000000000 +0100
+++ NetworkManager-0.8.997/src/settings/plugins/ifcfg-rh/reader.c	2011-03-29 14:51:09.000000000 +0200
@@ -3321,7 +3321,12 @@ connection_from_file (const char *filena
 			/* Test wireless extensions */
 			if (is_wireless_device (device))
 				type = g_strdup (TYPE_WIRELESS);
-			else
+                        else if (!strncmp (device, "ctc", 3)) {
+                                /* FIXME: need to find an ioctl to identify
+                                 * CTC devices similar to wireless
+                                 */
+                                type = g_strdup (TYPE_CTC);
+			} else
 				type = g_strdup (TYPE_ETHERNET);
 		} else {
 			/* For the unit tests, there won't necessarily be any
@@ -3366,6 +3371,8 @@ connection_from_file (const char *filena
 	/* Construct the connection */
 	if (!strcasecmp (type, TYPE_ETHERNET))
 		connection = wired_connection_from_ifcfg (filename, parsed, nm_controlled, unmanaged, &error);
+	else if (!strcasecmp (type, TYPE_CTC))
+		connection = wired_connection_from_ifcfg (filename, parsed, nm_controlled, unmanaged, &error);
 	else if (!strcasecmp (type, TYPE_WIRELESS))
 		connection = wireless_connection_from_ifcfg (filename, parsed, nm_controlled, unmanaged, &error);
 	else if (!strcasecmp (type, TYPE_BRIDGE)) {
