diff --git a/apphandler.cpp b/apphandler.cpp
index 4ba637f..90818a9 100644
--- a/apphandler.cpp
+++ b/apphandler.cpp
@@ -1289,10 +1289,15 @@
                          uint8_t paramSelector, uint8_t setSelector,
                          uint8_t BlockSelector)
 {
-    if (reserved)
+    if (reserved || (paramSelector >= invalidParamSelectorStart &&
+                     paramSelector <= invalidParamSelectorEnd))
     {
         return ipmi::responseInvalidFieldRequest();
     }
+    if ((paramSelector >= oemCmdStart) && (paramSelector <= oemCmdEnd))
+    {
+        return ipmi::responseParmNotSupported();
+    }
     if (getRevision)
     {
         return ipmi::responseSuccess(paramRevision, std::nullopt, std::nullopt);
@@ -1322,7 +1327,7 @@
     bool found = std::get<0>(ret);
     if (!found)
     {
-        return ipmi::responseParmNotSupported();
+        return ipmi::responseSensorInvalid();
     }
     std::string& paramString = std::get<1>(ret);
     std::vector<uint8_t> configData;
@@ -1334,7 +1339,14 @@
         count = std::min(paramString.length(), smallChunkSize);
         configData.resize(count + configDataOverhead);
         std::copy_n(paramString.begin(), count,
-                    configData.begin() + configDataOverhead); // 14 bytes thunk
+                    configData.begin() + configDataOverhead); // 14 bytes chunk
+
+        // Append zero's to remaining bytes
+        if (configData.size() < configParameterLength)
+        {
+            std::fill_n(std::back_inserter(configData),
+                        configParameterLength - configData.size(), 0x00);
+        }
     }
     else
     {
