--- /dev/null
+diff -up cups-1.4.3/filter/texttops.c.texttops-rotate-page cups-1.4.3/filter/texttops.c
+--- cups-1.4.3/filter/texttops.c.texttops-rotate-page 2008-11-06 16:42:18.000000000 +0000
++++ cups-1.4.3/filter/texttops.c 2010-05-18 16:42:23.669940884 +0100
+@@ -97,6 +97,13 @@ WritePage(void)
+
+ puts("gsave");
+
++ /* If we're opereating in Landscape (Orientation == 1 or Orientation == 3)
++ then rotate and translate the page */
++ if ( Orientation & 1 ) {
++ printf ("%d rotate\n", (Orientation & 3) * 90 );
++ printf("0 %.0f neg translate\n", PageLength);
++ }
++
+ if (PrettyPrint)
+ printf("%d H\n", NumPages);
+
+@@ -212,7 +219,7 @@ WriteProlog(const char *title, /* I - T
+
+ puts("%!PS-Adobe-3.0");
+ printf("%%%%BoundingBox: 0 0 %.0f %.0f\n", PageWidth, PageLength);
+- printf("%%cupsRotation: %d\n", (Orientation & 3) * 90);
++ puts("%cupsRotation: 0");
+ puts("%%Creator: texttops/" CUPS_SVERSION);
+ printf("%%%%CreationDate: %s\n", curdate);
+ WriteTextComment("Title", title);
+@@ -549,6 +556,8 @@ WriteProlog(const char *title, /* I - T
+ puts("%%EndComments");
+
+ puts("%%BeginProlog");
++ printf("%%%%Orientation: %s\n",
++ Orientation & 1 ? "Landscape" : "Portrait");
+
+ /*
+ * Download any missing fonts...