diff -ur gnome-applets-2.28.0-old/stickynotes/pixmaps/Makefile.am gnome-applets-2.28.0/stickynotes/pixmaps/Makefile.am
--- gnome-applets-2.28.0-old/stickynotes/pixmaps/Makefile.am	2009-09-05 22:59:57.000000000 +0200
+++ gnome-applets-2.28.0/stickynotes/pixmaps/Makefile.am	2010-01-23 04:50:35.000000000 +0100
@@ -4,6 +4,8 @@
 stickynotes_applet_pixmaps_DATA = \
 	locked.png \
 	unlocked.png \
+  always-on-top.png \
+  not-always-on-top.png \
 	close.png \
 	resize_se.png \
 	resize_sw.png
diff -ur gnome-applets-2.28.0-old/stickynotes/stickynotes_applet.c gnome-applets-2.28.0/stickynotes/stickynotes_applet.c
--- gnome-applets-2.28.0-old/stickynotes/stickynotes_applet.c	2009-09-12 04:53:42.000000000 +0200
+++ gnome-applets-2.28.0/stickynotes/stickynotes_applet.c	2010-01-23 05:59:25.000000000 +0100
@@ -43,6 +43,8 @@
 static const StickyNotesStockIcon stickynotes_icons[] =
 {
 	{ STICKYNOTES_STOCK_LOCKED, STICKYNOTES_ICONDIR "/locked.png" },
+	{ STICKYNOTES_STOCK_ALWAYS_ON_TOP, STICKYNOTES_ICONDIR "/always-on-top.png" },
+	{ STICKYNOTES_STOCK_NOT_ALWAYS_ON_TOP, STICKYNOTES_ICONDIR "/not-always-on-top.png" },
 	{ STICKYNOTES_STOCK_UNLOCKED, STICKYNOTES_ICONDIR "/unlocked.png" },
 	{ STICKYNOTES_STOCK_CLOSE, STICKYNOTES_ICONDIR "/close.png" },
 	{ STICKYNOTES_STOCK_RESIZE_SE, STICKYNOTES_ICONDIR "/resize_se.png" },
diff -ur gnome-applets-2.28.0-old/stickynotes/stickynotes_applet.h gnome-applets-2.28.0/stickynotes/stickynotes_applet.h
--- gnome-applets-2.28.0-old/stickynotes/stickynotes_applet.h	2009-06-29 08:55:46.000000000 +0200
+++ gnome-applets-2.28.0/stickynotes/stickynotes_applet.h	2010-01-23 04:45:35.000000000 +0100
@@ -34,6 +34,8 @@
 
 #define STICKYNOTES_STOCK_LOCKED	"stickynotes-stock-locked"
 #define STICKYNOTES_STOCK_UNLOCKED	"stickynotes-stock-unlocked"
+#define STICKYNOTES_STOCK_ALWAYS_ON_TOP	"stickynotes-stock-always-on-top"
+#define STICKYNOTES_STOCK_NOT_ALWAYS_ON_TOP	"stickynotes-stock-not-always-on-top"
 #define STICKYNOTES_STOCK_CLOSE 	"stickynotes-stock-close"
 #define STICKYNOTES_STOCK_RESIZE_SE 	"stickynotes-stock-resize-se"
 #define STICKYNOTES_STOCK_RESIZE_SW	"stickynotes-stock-resize-sw"
diff -ur gnome-applets-2.28.0-old/stickynotes/stickynotes.c gnome-applets-2.28.0/stickynotes/stickynotes.c
--- gnome-applets-2.28.0-old/stickynotes/stickynotes.c	2009-08-13 21:10:20.000000000 +0200
+++ gnome-applets-2.28.0/stickynotes/stickynotes.c	2010-01-23 06:03:31.000000000 +0100
@@ -113,6 +113,8 @@
 	note->w_scroller = GTK_WIDGET (gtk_builder_get_object (builder, "body_scroller"));
 	note->w_lock = GTK_WIDGET (gtk_builder_get_object (builder, "lock_button"));
 	gtk_widget_add_events (note->w_lock, GDK_BUTTON_PRESS_MASK);
+	note->w_always_on_top = GTK_WIDGET (gtk_builder_get_object (builder, "always_on_top_button"));
+	gtk_widget_add_events (note->w_always_on_top, GDK_BUTTON_PRESS_MASK);
 
 	note->w_close = GTK_WIDGET (gtk_builder_get_object (builder, "close_button"));
 	gtk_widget_add_events (note->w_close, GDK_BUTTON_PRESS_MASK);
@@ -123,6 +125,8 @@
 
 	note->img_lock = GTK_IMAGE (gtk_builder_get_object (builder,
 	                "lock_img"));
+	note->img_always_on_top = GTK_IMAGE (gtk_builder_get_object (builder,
+	                "always_on_top_img"));
 	note->img_close = GTK_IMAGE (gtk_builder_get_object (builder,
 	                "close_img"));
 	note->img_resize_se = GTK_IMAGE (gtk_builder_get_object (builder,
@@ -196,6 +200,7 @@
 	gtk_image_set_from_stock (note->img_resize_sw,
 			STICKYNOTES_STOCK_RESIZE_SW, size);
 	gtk_widget_show(note->w_lock);
+	gtk_widget_show(note->w_always_on_top);
 	gtk_widget_show(note->w_close);
 	gtk_widget_show(GTK_WIDGET (gtk_builder_get_object (builder, "resize_bar")));
 
@@ -204,6 +209,7 @@
 	stickynote_set_color(note, NULL, NULL, TRUE);
 	stickynote_set_font(note, NULL, TRUE);
 	stickynote_set_locked(note, FALSE);
+	stickynote_set_always_on_top(note, FALSE);
 
 	gtk_widget_realize (note->w_window);
 
@@ -239,6 +245,8 @@
 	/* Connect signals to the sticky note */
 	g_signal_connect (G_OBJECT (note->w_lock), "clicked",
 			G_CALLBACK (stickynote_toggle_lock_cb), note);
+	g_signal_connect (G_OBJECT (note->w_always_on_top), "clicked",
+			G_CALLBACK (stickynote_toggle_always_on_top_cb), note);
 	g_signal_connect (G_OBJECT (note->w_close), "clicked",
 			G_CALLBACK (stickynote_close_cb), note);
 	g_signal_connect (G_OBJECT (note->w_resize_se), "button-press-event",
@@ -644,6 +652,26 @@
 	stickynotes_applet_update_menus();
 }
 
+/* Lock/Unlock a sticky note from editing */
+void stickynote_set_always_on_top(StickyNote *note, gboolean always_on_top)
+{
+	GtkIconSize size;
+	note->always_on_top = always_on_top;
+
+	/* Keep window above all others */
+	gtk_window_set_keep_above (note->w_window, always_on_top);
+
+	size = gtk_icon_size_from_name ("stickynotes_icon_size");
+
+	/* Show appropriate icon and tooltip */
+	if (always_on_top) {
+		gtk_image_set_from_stock(note->img_always_on_top, STICKYNOTES_STOCK_ALWAYS_ON_TOP, size);
+	}
+	else {
+		gtk_image_set_from_stock(note->img_always_on_top, STICKYNOTES_STOCK_NOT_ALWAYS_ON_TOP, size);
+	}
+}
+
 /* Show/Hide a sticky note */
 void
 stickynote_set_visible (StickyNote *note, gboolean visible)
diff -ur gnome-applets-2.28.0-old/stickynotes/stickynotes_callbacks.c gnome-applets-2.28.0/stickynotes/stickynotes_callbacks.c
--- gnome-applets-2.28.0-old/stickynotes/stickynotes_callbacks.c	2009-04-19 04:12:10.000000000 +0200
+++ gnome-applets-2.28.0/stickynotes/stickynotes_callbacks.c	2010-01-23 05:19:58.000000000 +0100
@@ -29,6 +29,15 @@
 	return TRUE;
 }
 
+/* Sticky Window Callback : Toggle always on top */
+gboolean
+stickynote_toggle_always_on_top_cb (GtkWidget *widget, StickyNote *note)
+{
+	stickynote_set_always_on_top (note, !note->always_on_top);
+
+	return TRUE;
+}
+
 /* Sticky Window Callback : Close the window. */
 gboolean
 stickynote_close_cb (GtkWidget *widget, StickyNote *note)
diff -ur gnome-applets-2.28.0-old/stickynotes/stickynotes_callbacks.h gnome-applets-2.28.0/stickynotes/stickynotes_callbacks.h
--- gnome-applets-2.28.0-old/stickynotes/stickynotes_callbacks.h	2009-04-19 04:12:10.000000000 +0200
+++ gnome-applets-2.28.0/stickynotes/stickynotes_callbacks.h	2010-01-23 05:00:53.000000000 +0100
@@ -24,6 +24,7 @@
 
 /* Callbacks for the sticky notes windows */
 gboolean stickynote_toggle_lock_cb(GtkWidget *widget, StickyNote *note);
+gboolean stickynote_toggle_always_on_top_cb (GtkWidget *widget, StickyNote *note);
 gboolean stickynote_close_cb(GtkWidget *widget, StickyNote *note);
 gboolean stickynote_resize_cb(GtkWidget *widget, GdkEventButton *event, StickyNote *note);
 gboolean stickynote_move_cb(GtkWidget *widget, GdkEventButton *event, StickyNote *note);
diff -ur gnome-applets-2.28.0-old/stickynotes/stickynotes.h gnome-applets-2.28.0/stickynotes/stickynotes.h
--- gnome-applets-2.28.0-old/stickynotes/stickynotes.h	2009-08-13 21:10:20.000000000 +0200
+++ gnome-applets-2.28.0/stickynotes/stickynotes.h	2010-01-23 05:17:52.000000000 +0100
@@ -44,6 +44,7 @@
 	GtkWidget *w_body;		/* Sticky Note text body */
         GtkWidget *w_scroller;          /* Sticky Note scroller */
 	GtkWidget *w_lock;		/* Sticky Note lock button */
+	GtkWidget *w_always_on_top;		/* Sticky Note always on top button */
 	GtkWidget *w_close;		/* Sticky Note close button */
 	GtkWidget *w_resize_se;		/* Sticky Note resize button (south east) */
 	GtkWidget *w_resize_sw;		/* Sticky Note resize button (south west) */
@@ -51,6 +52,7 @@
 	GtkToggleAction *ta_lock_toggle_item; /* Lock item in the popup menu */
 
 	GtkImage *img_lock;		/* Lock image */
+	GtkImage *img_always_on_top;		/* Lock image */
 	GtkImage *img_close;		/* Close image */
 	GtkImage *img_resize_se;	/* SE resize image */
 	GtkImage *img_resize_sw;	/* SW resize image */
@@ -59,6 +61,7 @@
 	gchar *font_color;		/* Font color */
 	gchar *font;			/* Note font */
 	gboolean locked;		/* Note locked state */
+	gboolean always_on_top;		/* Note always on top state */
 
 	gint x;				/* Note x-coordinate */
 	gint y;				/* Note y-coordinate */
@@ -81,6 +84,7 @@
 			   gboolean     save);
 void stickynote_set_font(StickyNote *note, const gchar* font_str, gboolean save);
 void stickynote_set_locked(StickyNote *note, gboolean locked);
+void stickynote_set_always_on_top(StickyNote *note, gboolean always_on_top);
 void stickynote_set_visible(StickyNote *note, gboolean visible);
 
 void stickynote_change_properties(StickyNote *note);
diff -ur gnome-applets-2.28.0-old/stickynotes/stickynotes.ui gnome-applets-2.28.0/stickynotes/stickynotes.ui
--- gnome-applets-2.28.0-old/stickynotes/stickynotes.ui	2009-09-12 04:54:54.000000000 +0200
+++ gnome-applets-2.28.0/stickynotes/stickynotes.ui	2010-01-23 04:45:31.000000000 +0100
@@ -746,6 +746,25 @@
               </packing>
             </child>
             <child>
+              <object class="GtkButton" id="always_on_top_button">
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="tooltip_text" translatable="yes">Toggle always on top</property>
+                <property name="relief">none</property>
+                <child>
+                  <object class="GtkImage" id="always_on_top_img">
+                    <property name="visible">True</property>
+                    <property name="stock">gtk-missing-image</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
               <object class="GtkLabel" id="title_label">
                 <property name="visible">True</property>
                 <property name="xpad">2</property>
@@ -753,7 +772,7 @@
                 <property name="justify">center</property>
               </object>
               <packing>
-                <property name="position">1</property>
+                <property name="position">2</property>
               </packing>
             </child>
             <child>
@@ -772,7 +791,7 @@
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
-                <property name="position">2</property>
+                <property name="position">3</property>
               </packing>
             </child>
           </object>
