diff --git a/pnp/CHANGELOG b/pnp/CHANGELOG
index 4ddcdfb2f3f2c0691543d6404a947b08de31a420..a21e9b4766f9d8aae0b683911bd02d916ecb2d77 100644
--- a/pnp/CHANGELOG
+++ b/pnp/CHANGELOG
@@ -25,3 +25,4 @@
             changed to load settings from config file (open-pnp.toml by default) in the SETTINGS.__init__
             don't exit if cfg_file not found (not strictly needed, can all set viy cli), just print a warning
             fixed: --config-file option (was cfg_file instead of config-file)
+2023-04-17: fixed device update check use version instead of image
diff --git a/pnp/images.toml b/pnp/images.toml
index abdec3943f8931b9603b7bdfc93e957ad0a2aa2a..6d9633e6089300f22a22e1b43daec911ced95e1e 100644
--- a/pnp/images.toml
+++ b/pnp/images.toml
@@ -57,4 +57,9 @@ version = "15.2(7)E7"
 md5 = "11f9750e99be42792eddef7268e58e54"
 size = 16260096 
 models = ["WS-C2960L-24TS-LL"]
-           
\ No newline at end of file
+
+["c2960s-universalk9-mz.152-2.E9.bin"]
+version = "15.2(2)E9"
+md5 = "EA604D030B378B6C5C3DDA3D501AC2F5"
+size = 16800768 
+models = ["WS-C2960S-F48TS-L", "WS-C2960S-F24TS-L"]
\ No newline at end of file
diff --git a/pnp/open-pnp.py b/pnp/open-pnp.py
index 6e622746bf8c08eaf95d7a683f722b433e46fe38..2e3b7d64bebde1eb6179f7bb242a5191064385fa 100755
--- a/pnp/open-pnp.py
+++ b/pnp/open-pnp.py
@@ -41,7 +41,7 @@
 # 2023-32-07: changed '_' in cli options to '-' -> better readable/more bash like
 # 2023-03-13: added '--no-default-cfg' option
 # 2023-04-11: added flask options to remove whitespaces by default, changed version format (major.minor.micro-date)
-
+# 2023-04-17: fixed device update check use version instead of image
 #
 # pip install flask xmltodict requests ifaddr tomli
 #
@@ -268,7 +268,7 @@ def update_device_info(data: Dict[str, Any]):
     udi = data['pnp']['@udi']
     device = devices[udi]
 
-    device.version = data['pnp']['response']['imageInfo']['versionString']
+    device.version = data['pnp']['response']['imageInfo']['versionString'].strip()
     device.image = data['pnp']['response']['imageInfo']['imageFile'].split(':')[1]
     device.refresh_data = False
     device.last_contact = strftime(SETTINGS.time_format)
@@ -284,7 +284,7 @@ def update_device_info(data: Dict[str, Any]):
 
 def check_update(udi: str):
     device = devices[udi]
-    if device.image == device.target_image.image:
+    if device.version == device.target_image.version:
         device.pnp_flow = PNPFLOW.UPDATE_DOWN
     else:
         device.pnp_flow = PNPFLOW.UPDATE_NEEDED
diff --git a/pnp/open_pnp_classes.py b/pnp/open_pnp_classes.py
index fd7f3d4c94f2e9bd526e42907394edaf15bc56e3..2688fef0d48e4ba7ea1b6bd33107f8de81db1e0c 100644
--- a/pnp/open_pnp_classes.py
+++ b/pnp/open_pnp_classes.py
@@ -35,6 +35,7 @@ class ErrorCodes:
         1816: 'Error verifying checksum for Image',
         1829: 'Image copy was unsuccessful',
         1803: 'Source file not found',
+        1817: 'Running Image checksum same as provided checksum. Upgrade not needed',
     }
 
     def __init__(self):
@@ -52,6 +53,7 @@ class ErrorCodes:
         self.PNP_ERROR_BAD_CHECKSUM = 1816
         self.PNP_ERROR_IMAGE_COPY_UNSUCCESSFUL = 1829
         self.PNP_ERROR_FILE_NOT_FOUND = 1803
+        self.PNP_ERROR_MD5_IDENTICAL = 1817
 
     def readable(self, error_code: int):
         return self.__readable.get(error_code, f'unknown: {error_code}')