diff --git a/src/abis_nm.c b/src/abis_nm.c
index 6e0f5bad..4a0be22 100644
--- a/src/abis_nm.c
+++ b/src/abis_nm.c
@@ -263,6 +263,7 @@
 		[NM_ATT_BS11_LMT_USER_NAME] =	{ TLV_TYPE_TLV },
 		[NM_ATT_BS11_BTS_STATE]	=	{ TLV_TYPE_TLV },
 		[NM_ATT_BS11_E1_STATE]	=	{ TLV_TYPE_TLV },
+		[NM_ATT_BS11_PLL_MODE]	=	{ TLV_TYPE_TLV },
 		/* ip.access specifics */
 		[NM_ATT_IPACC_RSL_BSC_IP] =	{ TLV_TYPE_FIXED, 4 },
 		[NM_ATT_IPACC_RSL_BSC_PORT] =	{ TLV_TYPE_FIXED, 2 },
@@ -1684,6 +1685,21 @@
 	return abis_nm_sendmsg(trx->bts, msg);
 }
 
+int abis_nm_bs11_get_pll_mode(struct gsm_bts *bts)
+{
+	struct abis_om_hdr *oh;
+	struct msgb *msg = nm_msgb_alloc();
+	u_int8_t attr = NM_ATT_BS11_PLL_MODE;
+
+	oh = (struct abis_om_hdr *) msgb_put(msg, ABIS_OM_FOM_HDR_SIZE);
+	fill_om_fom_hdr(oh, 2+sizeof(attr), NM_MT_GET_ATTR,
+			NM_OC_BS11, BS11_OBJ_LI, 0x00, 0x00);
+	msgb_tlv_put(msg, NM_ATT_LIST_REQ_ATTR, sizeof(attr), &attr);
+
+	return abis_nm_sendmsg(bts, msg);
+}
+
+
 //static const u_int8_t bs11_logon_c7[] = { 0x07, 0xd9, 0x01, 0x11, 0x0d, 0x10, 0x20 };
 static const u_int8_t bs11_logon_c8[] = { 0x02 };
 static const u_int8_t bs11_logon_c9[] = "FACTORY";
diff --git a/src/bs11_config.c b/src/bs11_config.c
index 7f75985..f350368 100644
--- a/src/bs11_config.c
+++ b/src/bs11_config.c
@@ -294,6 +294,18 @@
 	}
 }
 
+static const char *pll_mode_name(u_int8_t mode)
+{
+	switch (mode) {
+	case BS11_LI_PLL_LOCKED:
+		return "E1 Locked";
+	case BS11_LI_PLL_STANDALONE:
+		return "Standalone";
+	default:
+		return "unknown";
+	}
+}
+
 static const char *obj_name(struct abis_om_fom_hdr *foh)
 {
 	static char retbuf[256];
@@ -308,6 +320,9 @@
 			sprintf(retbuf+strlen(retbuf), "Power Amplifier %d ",
 				foh->obj_inst.ts_nr);
 			break;
+		case BS11_OBJ_LI:
+			sprintf(retbuf+strlen(retbuf), "Line Interface ");
+			break;
 		}
 		break;
 	case NM_OC_SITE_MANAGER:
@@ -377,6 +392,12 @@
 		printf("\tTRX Power: %s\n",
 			trx_power_name(*TLVP_VAL(tp, NM_ATT_BS11_TXPWR)));
 	}
+	if (TLVP_PRESENT(tp, NM_ATT_BS11_PLL_MODE) &&
+	    TLVP_LEN(tp, NM_ATT_BS11_PLL_MODE) >= 1) {
+		printf("\tPLL Mode: %s\n",
+			pll_mode_name(*TLVP_VAL(tp, NM_ATT_BS11_PLL_MODE)));
+	}
+			
 
 	return 0;
 }
@@ -386,6 +407,7 @@
 	bs11cfg_state = STATE_QUERY;
 	abis_nm_bs11_get_serno(g_bts);
 	abis_nm_bs11_get_oml_tei_ts(g_bts);
+	abis_nm_bs11_get_pll_mode(g_bts);
 	abis_nm_bs11_get_trx_power(&g_bts->trx[0]);
 	abis_nm_bs11_get_trx_power(&g_bts->trx[1]);
 	sleep(5);
