diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Form.xft b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Form.xft
index 079d99434d..5e0a660319 100644
--- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Form.xft
+++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Form.xft
@@ -22,7 +22,7 @@
 	 -->
 	<Files>
 		<!-- Designer file must come first, so the design tab is shown correctly -->
-		<File name="${Path}/${FileNameWithoutExtension}.Designer.boo" language="Boo"><![CDATA[namespace ${StandardNamespace}
+		<File name="${Path}/${FileNameWithoutExtension}.Designer.boo" dependentUpon="${FileName}" language="Boo"><![CDATA[namespace ${StandardNamespace}
 
 partial class ${ClassName}(System.Windows.Forms.Form):
 	private components as System.ComponentModel.IContainer = null
diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/NewFileDialog.cs b/src/Main/Base/Project/Src/Gui/Dialogs/NewFileDialog.cs
index 1f77fd6386..e585b1a6b0 100644
--- a/src/Main/Base/Project/Src/Gui/Dialogs/NewFileDialog.cs
+++ b/src/Main/Base/Project/Src/Gui/Dialogs/NewFileDialog.cs
@@ -426,7 +426,11 @@ namespace ICSharpCode.SharpDevelop.Gui
 				if (allowUntitledFiles) {
 					fileName = GenerateCurrentFileName();
 				} else {
-					fileName = Path.Combine(basePath, ControlDictionary["fileNameTextBox"].Text);
+					fileName = ControlDictionary["fileNameTextBox"].Text;
+					if (Path.GetExtension(fileName).Length == 0) {
+						fileName += Path.GetExtension(item.Template.DefaultName);
+					}
+					fileName = Path.Combine(basePath, fileName);
 					fileName = Path.GetFullPath(fileName);
 					IProject project = ProjectService.CurrentProject;
 					if (project != null) {