diff --git a/openair2/ENB_APP/enb_agent_common.c b/openair2/ENB_APP/enb_agent_common.c
index 8d9997e7460559a48ffd27fc1b06c0067da83a50..ce838766ee457c82ef8e484408e7a70ff9783ba7 100644
--- a/openair2/ENB_APP/enb_agent_common.c
+++ b/openair2/ENB_APP/enb_agent_common.c
@@ -292,13 +292,18 @@ int get_current_time_ms (mid_t mod_id, int subframe_flag){
    
 }
 
-int get_current_frame (mid_t mod_id) {
-  
+unsigned int get_current_frame (mid_t mod_id) {
+
+  #warning "SFN will not be in [0-1023] when oaisim is used"
   return ((eNB_MAC_INST *)enb[mod_id])->frame;
   
 }
 
-int get_current_subframe (mid_t mod_id) {
+unsigned int get_current_system_frame_num(mid_t mod_id) {
+  return (get_current_frame(mod_id) %1024);
+}
+
+unsigned int get_current_subframe (mid_t mod_id) {
 
   return ((eNB_MAC_INST *)enb[mod_id])->subframe;
   
@@ -306,12 +311,16 @@ int get_current_subframe (mid_t mod_id) {
 
 uint16_t get_sfn_sf (mid_t mod_id) {
   
-  uint16_t frame, subframe;
-  uint16_t sfn_sf;
+  frame_t frame;
+  sub_frame_t subframe;
+  uint16_t sfn_sf, frame_mask, sf_mask;
+  
+  frame = (frame_t) get_current_system_frame_num(mod_id);
+  subframe = (sub_frame_t) get_current_subframe(mod_id);
+  frame_mask = ((1<<12) - 1);
+  sf_mask = ((1<<4) -1);
+  sfn_sf = (subframe & sf_mask) | ((frame & frame_mask) << 4);
   
-  frame = (uint16_t) get_current_frame(mod_id);
-  subframe = (uint16_t) get_current_subframe(mod_id);
-  sfn_sf = (subframe << 12) | frame;
   return sfn_sf;
 }
 
diff --git a/openair2/ENB_APP/enb_agent_common.h b/openair2/ENB_APP/enb_agent_common.h
index f4add1ae2e2816bf607f46d5acfea86030ed62c8..4762637b66d5a19b37d6c71695bf31e687239da8 100644
--- a/openair2/ENB_APP/enb_agent_common.h
+++ b/openair2/ENB_APP/enb_agent_common.h
@@ -109,9 +109,15 @@ void set_enb_vars(mid_t mod_id, ran_name_t ran);
 
 int get_current_time_ms (mid_t mod_id, int subframe_flag);
 
-int get_current_frame(mid_t mod_id);
+/*Return the current frame number
+ *Could be using implementation specific numbering of frames
+ */
+unsigned int get_current_frame(mid_t mod_id);
+
+/*Return the current SFN (0-1023)*/ 
+unsigned int get_current_system_frame_num(mid_t mod_id);
 
-int get_current_subframe(mid_t mod_id);
+unsigned int get_current_subframe(mid_t mod_id);
 
 /*Return the frame and subframe number in compact 16-bit format.
   Bits 0-3 subframe, rest for frame. Required by progRAN protocol*/