diff --git a/src/FullScreenView.cs b/src/FullScreenView.cs
index d2362ba..2dec95b 100644
--- a/src/FullScreenView.cs
+++ b/src/FullScreenView.cs
@@ -269,6 +269,16 @@ namespace FSpot {
 				ControlOverlay.VisibilityType.None;
 		}
 
+		TaggingOverlay tagging;
+		private void TaggingAction (object sender, System.EventArgs args)
+		{
+			if (tagging == null) {
+				tagging = new TaggingOverlay (this);
+			}
+
+			tagging.Focus ();
+		}
+
 		[GLib.ConnectBefore]
 		private void HandleViewMotion (object sender, Gtk.MotionNotifyEventArgs args)
 		{
@@ -347,6 +357,10 @@ namespace FSpot {
 			case Gdk.Key.bracketright:
 				new RotateRightAction (view.Item).Activate ();
 				return true;
+			case Gdk.Key.t:
+			case Gdk.Key.T:
+				TaggingAction (null, null);
+				return true;
 			}
 
 			return base.OnKeyPressEvent (key);
diff --git a/src/InfoOverlay.cs b/src/InfoOverlay.cs
index 92131c5..f55dcec 100644
--- a/src/InfoOverlay.cs
+++ b/src/InfoOverlay.cs
@@ -60,4 +60,27 @@ namespace FSpot {
 			AutoHide = false;
 		}
 	}
+
+	public class TaggingOverlay : ControlOverlay {
+		TagEntry entry;
+
+		public TaggingOverlay (Widget w) : base (w)
+		{
+			XAlign = 0.5;
+			YAlign = 0.9;
+			DefaultWidth = 300;
+			Visibility = VisibilityType.Full;
+			KeepAbove = true;
+			AutoHide = false;
+
+			entry = new TagEntry (App.Instance.Database.Tags);
+			Add (entry);
+			entry.Show ();
+		}
+
+		public void Focus ()
+		{
+			entry.GrabFocus ();
+		}
+	}
 }
