diff --git a/.idea/gimp-python-wrappers.iml b/.idea/gimp-python-wrappers.iml
index 8437fe6..91dacbb 100644
--- a/.idea/gimp-python-wrappers.iml
+++ b/.idea/gimp-python-wrappers.iml
@@ -2,7 +2,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9de2865..8b71b19 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,5 +3,5 @@
-
+
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3e4480a..7df8f17 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+3.2
+===
+
+* Fixed procedure registration if the same list of arguments was reused for multiple plug-in procedures.
+
+
3.1
===
diff --git a/generate-pdb-stubs/generate-pdb-stubs.py b/generate-pdb-stubs/generate-pdb-stubs.py
index d6ea335..7645ee5 100644
--- a/generate-pdb-stubs/generate-pdb-stubs.py
+++ b/generate-pdb-stubs/generate-pdb-stubs.py
@@ -13,7 +13,6 @@
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
-from gi.repository import GLib
from gi.repository import GObject
import stubgen
diff --git a/wrappers/procedure.py b/wrappers/procedure.py
index 51024ff..32b53a3 100644
--- a/wrappers/procedure.py
+++ b/wrappers/procedure.py
@@ -199,24 +199,26 @@ def _parse_and_check_parameters(parameters):
processed_parameters = {}
for param in parameters:
- if isinstance(param, list):
- if len(param) < 2:
+ processed_param = list(param)
+
+ if isinstance(processed_param, list):
+ if len(processed_param) < 2:
raise ValueError(
('The list describing an argument or a return value must contain'
' at least two elements - type and name'))
- if not isinstance(param[0], str):
+ if not isinstance(processed_param[0], str):
raise TypeError('The type of the argument or return value must be a string')
- if not isinstance(param[1], str):
+ if not isinstance(processed_param[1], str):
raise TypeError('The name of the argument or return value must be a string')
- name = param.pop(1).replace('_', '-')
+ name = processed_param.pop(1).replace('_', '-')
if name in processed_parameters:
raise ValueError(f'Argument or return value named "{name}" was already specified')
- processed_parameters[name] = list(param)
+ processed_parameters[name] = processed_param
else:
raise TypeError('Only lists are allowed when specifying an argument or return value')