diff --git a/src/main/java/com/ardublock/translator/block/didacticnetwork/PsnCallbackBlock.java b/src/main/java/com/ardublock/translator/block/didacticnetwork/PsnCallbackBlock.java
index 7ff453bc38009a91691860a49b552b5bd539ba89..a28db2931c0d6bb3027972d6cbc145d259d29211 100644
--- a/src/main/java/com/ardublock/translator/block/didacticnetwork/PsnCallbackBlock.java
+++ b/src/main/java/com/ardublock/translator/block/didacticnetwork/PsnCallbackBlock.java
@@ -23,6 +23,9 @@ public class PsnCallbackBlock extends TranslatorBlock
 	@Override
 	public String toCode() throws SocketNullException, SubroutineNotDeclaredException
 	{
+		String newMarker = "_.new";
+		String regex = "\\s*"+newMarker+"\\b\\s*";
+		
 		String callbackName = label.trim();
 		String topicVar = "";
 		String topicLenVar = "";
@@ -40,10 +43,28 @@ public class PsnCallbackBlock extends TranslatorBlock
 		
 		TranslatorBlock tb_code = getTranslatorBlockAtSocket(5);
 		
-		topicVar = tb_topicVar.toCode().replaceAll("\\s*_.new\\b\\s*", "");
-		topicLenVar = tb_topicLenVar.toCode().replaceAll("\\s*_.new\\b\\s*", "");
-		dataVar = tb_dataVar.toCode().replaceAll("\\s*_.new\\b\\s*", "");
-		dataLenVar = tb_dataLenVar.toCode().replaceAll("\\s*_.new\\b\\s*", "");
+		topicVar = tb_topicVar.toCode();//.replaceAll("\\s*_.new\\b\\s*", "");
+		topicLenVar = tb_topicLenVar.toCode();//.replaceAll("\\s*_.new\\b\\s*", "");
+		dataVar = tb_dataVar.toCode();//.replaceAll("\\s*_.new\\b\\s*", "");
+		dataLenVar = tb_dataLenVar.toCode();//.replaceAll("\\s*_.new\\b\\s*", "");
+		
+		//LOCAL VARs
+		if ((tb_topicVar instanceof LocalVariableStringBlock) && topicVar.contains(newMarker)) {
+			topicVar = topicVar.replaceAll(regex, "");
+						translator.addNumberVariable(topicVar, topicVar);  //remove the "new" Tag after declaration
+		}
+		if ((tb_topicLenVar instanceof LocalVariableNumberBlock) && topicLenVar.contains(newMarker)) {
+			topicLenVar = topicLenVar.replaceAll(regex, "");
+						translator.addNumberVariable(topicLenVar, topicLenVar);  //remove the "new" Tag after declaration
+		}
+		if ((tb_dataVar instanceof LocalVariableStringBlock) && dataVar.contains(newMarker)) {
+			dataVar = dataVar.replaceAll(regex, "");
+						translator.addNumberVariable(dataVar, dataVar);  //remove the "new" Tag after declaration
+		}
+		if ((tb_dataLenVar instanceof LocalVariableNumberBlock) && dataLenVar.contains(newMarker)) {
+			dataLenVar = dataLenVar.replaceAll(regex, "");
+						translator.addNumberVariable(dataLenVar, dataLenVar);  //remove the "new" Tag after declaration
+		}
 		
 		if (tb_topicVar instanceof LocalVariableStringBlock && tb_topicLenVar instanceof LocalVariableNumberBlock && tb_dataVar instanceof LocalVariableStringBlock && tb_dataLenVar instanceof LocalVariableNumberBlock) {
 			translator.addDefinitionCommand("void " + callbackName + "(char*, int, char*, int);\n");
diff --git a/src/main/java/com/ardublock/ui/OpenblocksFrame.java b/src/main/java/com/ardublock/ui/OpenblocksFrame.java
index 02fc534424ab8d3ad1548ce697578e18fe940d53..bf10a0c2632d74c3efc98508c9e1a79d61098cd4 100644
--- a/src/main/java/com/ardublock/ui/OpenblocksFrame.java
+++ b/src/main/java/com/ardublock/ui/OpenblocksFrame.java
@@ -203,7 +203,7 @@ public class OpenblocksFrame extends JFrame
 		JMenuItem saveMenuItem = new JMenuItem(uiMessageBundle.getString("ardublock.ui.save"));
 		saveMenuItem.addActionListener(saveButtonListener);
 		saveMenuItem.setMnemonic(KeyEvent.VK_S);
-		saveMenuItem.registerKeyboardAction(newButtonListener, ctrlsKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
+		saveMenuItem.registerKeyboardAction(saveButtonListener, ctrlsKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
 		saveMenuItem.setToolTipText(uiMessageBundle.getString("ardublock.ui.save.tooltip"));