diff --git a/etc/rc.atm b/etc/rc.atm
index 42854c0530fe..2f807ebd1020 100644
--- a/etc/rc.atm
+++ b/etc/rc.atm
@@ -10,10 +10,8 @@
 # N.B. /usr is not mounted.
 #
 atm_pass1() {
-    # Locate all probed ATM adapters by scanning dmesg output
-    saveifs="${IFS}"
-    IFS=$IFS:
-    atmdev=`dmesg | while read dev junk; do
+    # Locate all probed ATM adapters
+    atmdev=`atm sh stat int | while read dev junk; do
 	case ${dev} in
 	hea[0-9]|hea[0-9][0-9])
 		echo "${dev} "
@@ -26,7 +24,6 @@ atm_pass1() {
 		;;
 	esac
     done`
-    IFS="${saveifs}"
 
     if [ -z "${atmdev}" ]; then
 	echo "No ATM adapters found."
diff --git a/etc/rc.d/atm1 b/etc/rc.d/atm1
index 42854c0530fe..2f807ebd1020 100644
--- a/etc/rc.d/atm1
+++ b/etc/rc.d/atm1
@@ -10,10 +10,8 @@
 # N.B. /usr is not mounted.
 #
 atm_pass1() {
-    # Locate all probed ATM adapters by scanning dmesg output
-    saveifs="${IFS}"
-    IFS=$IFS:
-    atmdev=`dmesg | while read dev junk; do
+    # Locate all probed ATM adapters
+    atmdev=`atm sh stat int | while read dev junk; do
 	case ${dev} in
 	hea[0-9]|hea[0-9][0-9])
 		echo "${dev} "
@@ -26,7 +24,6 @@ atm_pass1() {
 		;;
 	esac
     done`
-    IFS="${saveifs}"
 
     if [ -z "${atmdev}" ]; then
 	echo "No ATM adapters found."
diff --git a/etc/rc.d/atm2 b/etc/rc.d/atm2
index 42854c0530fe..2f807ebd1020 100644
--- a/etc/rc.d/atm2
+++ b/etc/rc.d/atm2
@@ -10,10 +10,8 @@
 # N.B. /usr is not mounted.
 #
 atm_pass1() {
-    # Locate all probed ATM adapters by scanning dmesg output
-    saveifs="${IFS}"
-    IFS=$IFS:
-    atmdev=`dmesg | while read dev junk; do
+    # Locate all probed ATM adapters
+    atmdev=`atm sh stat int | while read dev junk; do
 	case ${dev} in
 	hea[0-9]|hea[0-9][0-9])
 		echo "${dev} "
@@ -26,7 +24,6 @@ atm_pass1() {
 		;;
 	esac
     done`
-    IFS="${saveifs}"
 
     if [ -z "${atmdev}" ]; then
 	echo "No ATM adapters found."
diff --git a/etc/rc.d/atm2.sh b/etc/rc.d/atm2.sh
index 42854c0530fe..2f807ebd1020 100644
--- a/etc/rc.d/atm2.sh
+++ b/etc/rc.d/atm2.sh
@@ -10,10 +10,8 @@
 # N.B. /usr is not mounted.
 #
 atm_pass1() {
-    # Locate all probed ATM adapters by scanning dmesg output
-    saveifs="${IFS}"
-    IFS=$IFS:
-    atmdev=`dmesg | while read dev junk; do
+    # Locate all probed ATM adapters
+    atmdev=`atm sh stat int | while read dev junk; do
 	case ${dev} in
 	hea[0-9]|hea[0-9][0-9])
 		echo "${dev} "
@@ -26,7 +24,6 @@ atm_pass1() {
 		;;
 	esac
     done`
-    IFS="${saveifs}"
 
     if [ -z "${atmdev}" ]; then
 	echo "No ATM adapters found."
diff --git a/etc/rc.d/atm3 b/etc/rc.d/atm3
index 42854c0530fe..2f807ebd1020 100644
--- a/etc/rc.d/atm3
+++ b/etc/rc.d/atm3
@@ -10,10 +10,8 @@
 # N.B. /usr is not mounted.
 #
 atm_pass1() {
-    # Locate all probed ATM adapters by scanning dmesg output
-    saveifs="${IFS}"
-    IFS=$IFS:
-    atmdev=`dmesg | while read dev junk; do
+    # Locate all probed ATM adapters
+    atmdev=`atm sh stat int | while read dev junk; do
 	case ${dev} in
 	hea[0-9]|hea[0-9][0-9])
 		echo "${dev} "
@@ -26,7 +24,6 @@ atm_pass1() {
 		;;
 	esac
     done`
-    IFS="${saveifs}"
 
     if [ -z "${atmdev}" ]; then
 	echo "No ATM adapters found."
diff --git a/etc/rc.d/atm3.sh b/etc/rc.d/atm3.sh
index 42854c0530fe..2f807ebd1020 100644
--- a/etc/rc.d/atm3.sh
+++ b/etc/rc.d/atm3.sh
@@ -10,10 +10,8 @@
 # N.B. /usr is not mounted.
 #
 atm_pass1() {
-    # Locate all probed ATM adapters by scanning dmesg output
-    saveifs="${IFS}"
-    IFS=$IFS:
-    atmdev=`dmesg | while read dev junk; do
+    # Locate all probed ATM adapters
+    atmdev=`atm sh stat int | while read dev junk; do
 	case ${dev} in
 	hea[0-9]|hea[0-9][0-9])
 		echo "${dev} "
@@ -26,7 +24,6 @@ atm_pass1() {
 		;;
 	esac
     done`
-    IFS="${saveifs}"
 
     if [ -z "${atmdev}" ]; then
 	echo "No ATM adapters found."