plist_array_get_item_index(): return UINT_MAX instead of 0 when node can't be found
diff --git a/include/plist/plist.h b/include/plist/plist.h
index 263efa8..63e9d84 100644
--- a/include/plist/plist.h
+++ b/include/plist/plist.h
@@ -247,7 +247,7 @@
      * Get the index of an item. item must be a member of a #PLIST_ARRAY node.
      *
      * @param node the node
-     * @return the node index
+     * @return the node index or UINT_MAX if node index can't be determined
      */
     uint32_t plist_array_get_item_index(plist_t node);
 
diff --git a/src/Array.cpp b/src/Array.cpp
index a511841..d5d9d7c 100644
--- a/src/Array.cpp
+++ b/src/Array.cpp
@@ -22,6 +22,7 @@
 #include <plist/Array.h>
 
 #include <algorithm>
+#include <limits.h>
 
 namespace PList
 {
@@ -118,6 +119,9 @@
     if (node)
     {
         uint32_t pos = plist_array_get_item_index(node->GetPlist());
+        if (pos == UINT_MAX) {
+            return;
+        }
         plist_array_remove_item(_node, pos);
         std::vector<Node*>::iterator it = _array.begin();
         it += pos;
diff --git a/src/plist.c b/src/plist.c
index f22a8a0..3ffedc4 100644
--- a/src/plist.c
+++ b/src/plist.c
@@ -430,7 +430,7 @@
     {
         return node_child_position(father, node);
     }
-    return 0;
+    return UINT_MAX;
 }
 
 static void _plist_array_post_insert(plist_t node, plist_t item, long n)