diff --git a/core/IvmiScene.gd b/core/IvmiScene.gd
index 2f8be5eb650b63417edfad985c2233c495fa328d..26d0b087ec56ec396f531339e10e85a99ea33769 100644
--- a/core/IvmiScene.gd
+++ b/core/IvmiScene.gd
@@ -78,6 +78,7 @@ func _ready():
 	# PureData mode
 	if _pd_mode==PdMode.LIBPD :
 		var gdpdir = DirAccess.open("res://addons/gdpd")
+		var gdpdok : bool = false
 		if gdpdir :
 			_gdpd = ClassDB.instantiate("GdPd")
 			add_child(_gdpd)
@@ -85,14 +86,17 @@ func _ready():
 				# Get all input and output devices
 				var inps = _gdpd.get_available_input_devices()
 				var outs = _gdpd.get_available_output_devices()
-				# Initialise the first ones
-				_gdpd.init_devices(inps[0], outs[0])
-				# Open patch
-				var global_patch = ProjectSettings.globalize_path(_pd_patch)
-				var patch_name = global_patch.split("/")[-1]
-				var patch_dir = global_patch.trim_suffix(patch_name)
-				_gdpd.openfile(patch_name, patch_dir)
-		else :
+				if inps.size()>0 and outs.size()>0 :
+					# Initialise the first ones
+					_gdpd.init_devices(inps[0], outs[0])
+					# Open patch
+					var global_patch = ProjectSettings.globalize_path(_pd_patch)
+					var patch_name = global_patch.split("/")[-1]
+					var patch_dir = global_patch.trim_suffix(patch_name)
+					_gdpd.openfile(patch_name, patch_dir)
+					gdpdok=true
+		
+		if not gdpdok :
 			print("IVMI : Could not load gdpd addon")
 			_pd_mode=PdMode.OSC