diff --git a/data/pldm_variables.py b/data/pldm_variables.py
index 32bbcb4..54eb8f8 100755
--- a/data/pldm_variables.py
+++ b/data/pldm_variables.py
@@ -143,7 +143,7 @@
 #      Only record handle 0, 1, 2 are supported as of now.
 
 RESPONSE_DICT_GETPDR = {
-    'nextrecordhandle': ['0', '2'],
+    'nextrecordhandle': ['0', '2', '3'],
     'responsecount': ['29', '30'],
     'recordhandle': ['1', '2'],
     'pdrheaderversion': ['1'],
diff --git a/lib/pldm_utils.py b/lib/pldm_utils.py
index 7367932..81fbbf0 100644
--- a/lib/pldm_utils.py
+++ b/lib/pldm_utils.py
@@ -20,16 +20,6 @@
     Rprint Vars  pldm_results
 
     pldm_results:
-      [request_message]:                              08 01 80 00 04
-      [success_in_creating_the_socket]:               RC = 3
-      [success_in_connecting_to_socket]:              RC = 0
-      [success_in_sending_message_type_as_pldm_to_mctp]:RC = 0
-      [write_to_socket_successful]:                   RC = 5
-      [total_length]:                                 14
-      [loopback_response_message]:                    08 01 80 00 04
-      [on_first_recv(),response_==_request]:          RC = 0
-      [shutdown_socket_successful]:                   RC = 0
-      [response_message]:                             08 01 00 00 04 00 0d 00 00 00 00 00 00 00
       [supported_types]:
         [raw]:
           [0]:                                        0
@@ -52,12 +42,8 @@
     bsu_options = fa.args_to_objects(bsu_options)
 
     stdout, stderr, rc = bsu.bmc_execute_command('pldmtool ' + option_string, **bsu_options)
+
     if parse_results:
-        # Remove linefeeds following colons.
-        stdout = re.sub(":\n", ":", stdout)
-        # Remove first line (e.g. "Encode request successfully").
-        stdout = re.sub("^.*\\n", "", stdout)
-        stdout = re.sub('\x00', "", stdout)
         result = vf.key_value_outbuf_to_dict(stdout)
         if 'supported_types' in result:
             # 'supported types' begins like this:
@@ -69,17 +55,11 @@
                 supported_types['raw'].append(record[0])
                 supported_types['text'].append(record[1].rstrip(")"))
             result['supported_types'] = supported_types
-        elif 'date_&_time' in result:
+
+        elif 'yyyy-mm-dd_hh' in result:
             # Date & Time :
             # YYYY-MM-DD HH:MM:SS - 2020-02-24 06:44:16
             return result['yyyy-mm-dd_hh'].split(' - ')[1]
-        elif 'parsed_response_msg' in result:
-            dict_data1, dict_data2 = vf.split_dict_on_key('parsed_response_msg', result)
-            dict_data2.pop('parsed_response_msg')
-            if 'fru_datastructuretableintegritychecksum' in dict_data2:
-                dict_data2.pop('fru_datastructuretableintegritychecksum')
-            return dict_data2
-
         return result
 
     return stdout
