diff --git a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/templates/RubyCodeTemplatesPreferencePage.java b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/templates/RubyCodeTemplatesPreferencePage.java
index 0bfa571..9ccb427 100644
--- a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/templates/RubyCodeTemplatesPreferencePage.java
+++ b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/templates/RubyCodeTemplatesPreferencePage.java
@@ -17,28 +17,11 @@
 import org.eclipse.dltk.ui.text.ScriptSourceViewerConfiguration;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.text.templates.ContextTypeRegistry;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 
 public class RubyCodeTemplatesPreferencePage extends
 		ScriptTemplatePreferencePage implements IWorkbenchPreferencePage {
 
-	protected class RubyEditTemplateDialog extends EditTemplateDialog {
-		public RubyEditTemplateDialog(Shell parent, Template template,
-				boolean edit, boolean isNameModifiable,
-				ContextTypeRegistry registry) {
-			super(parent, template, edit, isNameModifiable, registry);
-		}
-
-		protected SourceViewer createViewer(Composite parent) {
-			return RubyCodeTemplatesPreferencePage.this.createViewer(parent);
-		}
-	}
-
 	public RubyCodeTemplatesPreferencePage() {
 		setPreferenceStore(RubyUI.getDefault().getPreferenceStore());
 
@@ -47,26 +30,20 @@
 				.getContextTypeRegistry());
 	}
 
-	protected ScriptSourceViewerConfiguration createSourceViewerConfiguration(
-			IDocument document) {
+	protected ScriptSourceViewerConfiguration createSourceViewerConfiguration() {
 		IPreferenceStore store = RubyUI.getDefault().getPreferenceStore();
 
 		RubyTextTools textTools = RubyUI.getDefault().getTextTools();
-		textTools.setupDocumentPartitioner(document,
-				RubyPartitions.RUBY_PARTITIONING);
-
 		return new SimpleRubySourceViewerConfiguration(textTools
 				.getColorManager(), store, null,
 				RubyPartitions.RUBY_PARTITIONING, false);
 	}
 
-	/*protected Template editTemplate(Template template, boolean edit,
-			boolean isNameModifiable) {
-		EditTemplateDialog dialog = new RubyEditTemplateDialog(getShell(),
-				template, edit, isNameModifiable, getContextTypeRegistry());
-		if (dialog.open() == Window.OK) {
-			return dialog.getTemplate();
-		}
-		return null;
-	}*/
+	protected void setDocumentParticioner(IDocument document) {
+		RubyTextTools textTools = RubyUI.getDefault().getTextTools();
+		textTools.setupDocumentPartitioner(document,
+				RubyPartitions.RUBY_PARTITIONING);
+	}
+	
+	
 }
