diff --git a/src/SingleShotAO.cpp b/src/SingleShotAO.cpp
index 56cb44dd817a7e444ba19a96b3d0102da063bdfd..dd92d5a9b90a699d99ae2d072809cfe328678401 100755
--- a/src/SingleShotAO.cpp
+++ b/src/SingleShotAO.cpp
@@ -537,8 +537,10 @@ void SingleShotAO::init_device()
 		// Get and set memorized values for speed, initial and channel
 		applyMemorizedAttr(kSPEED, &SingleShotAOManager::set_speed);
 		applyMemorizedAttr(kINITIAL, &SingleShotAOManager::set_initial); 
-		applyMemorizedAttr(kCHANNEL, &SingleShotAOManager::set_channel);
-		// TODO: add a property to call write_channel instead of set_channel (false by default)
+		if (writeMemorizedValuesAtInit)
+			applyMemorizedAttr(kCHANNEL, &SingleShotAOManager::write_channel);
+		else
+			applyMemorizedAttr(kCHANNEL, &SingleShotAOManager::set_channel);
     }
 
 	//- GO for task