diff --git a/src/main/java/com/ardublock/translator/block/cast/CastItoa.java b/src/main/java/com/ardublock/translator/block/cast/CastItoa.java
index 09ef7e23e9a5ab2151ce6ec5dd63e47cf23395f6..9da5d6312a1625d3e1080f2f5157ea2155fecdff 100644
--- a/src/main/java/com/ardublock/translator/block/cast/CastItoa.java
+++ b/src/main/java/com/ardublock/translator/block/cast/CastItoa.java
@@ -1,12 +1,20 @@
 package com.ardublock.translator.block.cast;
 
+import java.util.ResourceBundle;
+
 import com.ardublock.translator.Translator;
 import com.ardublock.translator.block.TranslatorBlock;
+import com.ardublock.translator.block.exception.BlockException;
 import com.ardublock.translator.block.exception.SocketNullException;
 import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;
+import com.ardublock.translator.block.numbers.ConstantStringBlock;
+import com.ardublock.translator.block.numbers.LocalVariableStringBlock;
+import com.ardublock.translator.block.numbers.VariableStringBlock;
 
 public class CastItoa extends TranslatorBlock
 {
+	private static ResourceBundle uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock");
+	
 	public CastItoa(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) {
 		super(blockId, translator, codePrefix, codeSuffix, label);
 	}
@@ -14,10 +22,17 @@ public class CastItoa extends TranslatorBlock
 	@Override
 	public String toCode() throws SocketNullException, SubroutineNotDeclaredException
 	{
-		TranslatorBlock tb = this.getRequiredTranslatorBlockAtSocket(0);
-		String intValue = tb.toCode().replaceAll("\\s*_.new\\b\\s*", "");
+		TranslatorBlock tb_value = this.getRequiredTranslatorBlockAtSocket(0);
+		TranslatorBlock tb_buffer = this.getRequiredTranslatorBlockAtSocket(1);
+		
+		String intValue = tb_value.toCode().replaceAll("\\s*_.new\\b\\s*", "");
+		String charBuffer = tb_buffer.toCode().replaceAll("\\s*_.new\\b\\s*", "");
+		
+		if (!(tb_buffer instanceof VariableStringBlock) && !(tb_buffer instanceof LocalVariableStringBlock)  && !(tb_buffer instanceof ConstantStringBlock)) {
+		    throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
+		}
 	
-		return "itoa("+ intValue + ")";
+		return "itoa("+ intValue + ", " + charBuffer + ", 10)";
 	}
 
 }
diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml
index 655c86f9d2f201a87854b80385e708ce422303c0..116c230924ea866860d29240e2a2dd55f213da58 100644
--- a/src/main/resources/com/ardublock/block/ardublock.xml
+++ b/src/main/resources/com/ardublock/block/ardublock.xml
@@ -1491,6 +1491,9 @@
 			</description>
 			<BlockConnectors>
 				<BlockConnector connector-type="string" connector-kind="plug"  />
+				<BlockConnector connector-type="string" connector-kind="socket"  >
+					<DefaultArg genus-name="variable_string" label="buffer" />
+				</BlockConnector>
 				<BlockConnector connector-type="number" connector-kind="socket"  />
 			</BlockConnectors>
 		</BlockGenus>