diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/revisions/RevisionPainter.java b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/revisions/RevisionPainter.java
index af3863a..34cdcaa 100644
--- a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/revisions/RevisionPainter.java
+++ b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/revisions/RevisionPainter.java
@@ -1029,7 +1029,6 @@
 				widgetStartLine= Math.max(0, range.getStartLine() - visibleStartLine);
 				widgetEndLine= Math.min(visibleEndLine, end(range) - 1);
 			} catch (BadLocationException x) {
-				x.printStackTrace();
 				// ignore and return null
 			}
 		}
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/AsyncCompletionProposalPopup.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/AsyncCompletionProposalPopup.java
index efb19eb..12a381e 100644
--- a/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/AsyncCompletionProposalPopup.java
+++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/AsyncCompletionProposalPopup.java
@@ -228,8 +228,7 @@
 		try {
 			processors= fContentAssistant.getContentAssistProcessors(getTokenContentType(invocationOffset));
 		} catch (BadLocationException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
+			// ignore
 		}
 		if (processors == null) {
 			return Collections.emptyList();
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/ChangeRulerColumn.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/ChangeRulerColumn.java
index 940dfcb..0946f5d 100644
--- a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/ChangeRulerColumn.java
+++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/ChangeRulerColumn.java
@@ -492,7 +492,6 @@
 			if (lastLine < bottomLine || bottomLine == -1)
 				bottomLine= lastLine;
 		} catch (BadLocationException x) {
-			x.printStackTrace();
 			return null;
 		}
 
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/templates/persistence/TemplateStore.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/templates/persistence/TemplateStore.java
index 0d76668..0e7889b 100644
--- a/org.eclipse.jface.text/src/org/eclipse/jface/text/templates/persistence/TemplateStore.java
+++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/templates/persistence/TemplateStore.java
@@ -292,7 +292,7 @@
 			load();
 		} catch (IOException x) {
 			// can't log from jface-text
-			x.printStackTrace();
+			handleException(x);
 		}
 
 		if (oldValue != null) {
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/HippieProposalProcessor.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/HippieProposalProcessor.java
index a169e27..b196c83 100644
--- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/HippieProposalProcessor.java
+++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/HippieProposalProcessor.java
@@ -107,8 +107,7 @@
 				String replacement= fString.substring(offset - fOffset);
 				document.replace(offset, 0, replacement);
 			} catch (BadLocationException x) {
-				// TODO Auto-generated catch block
-				x.printStackTrace();
+				// ignore
 			}
 		}
 
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/AbstractTemplatesPage.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/AbstractTemplatesPage.java
index f783dcf..04987fc 100644
--- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/AbstractTemplatesPage.java
+++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/AbstractTemplatesPage.java
@@ -48,6 +48,8 @@
 import org.eclipse.swt.widgets.TreeItem;
 
 import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
@@ -1307,7 +1309,8 @@
 		try {
 			getTemplateStore().save();
 		} catch (IOException e) {
-			e.printStackTrace();
+			TextEditorPlugin.getDefault().getLog().log(new Status(IStatus.ERROR, TextEditorPlugin.PLUGIN_ID,
+					TemplatesMessages.TemplatesPage_save_error_message, e));
 			MessageDialog.openError(getShell(),
 					TemplatesMessages.TemplatesPage_save_error_message, e.getMessage());
 		}
