diff -Naur grpn-1.2/CHANGES grpn-1.3.4/CHANGES
--- grpn-1.2/CHANGES	2009-11-14 01:41:53.000000000 +0000
+++ grpn-1.3.4/CHANGES	2011-12-26 06:38:28.500865615 +0000
@@ -80,3 +80,30 @@
 v1.2
    Compiles against gt+-2.0. Locale determines the decimal separator
    point or comma now.
+
+v1.3.0
+   This release is based on a merge of the sources 1.1.7.4
+   and the debian patches 1.1.2-3. 
+   The branch 1.2 is abandoned. 
+
+v1.3.1
+   Basemode defaults now to dec like the original version 1.1.2.
+   A new command line option -bm dec|eng|bin|oct|hex allows to
+   change the default value for basemode.
+
+v1.3.2
+   Cntr-c copies the bottom of the stack to the Gnome-clipboard.
+   (Cntr-v not implemented yet).
+   Complex numbers are displayed with ";" instead of ",".
+   "," is decimal separator in some locales.
+
+v1.3.3
+   Bugfix: Convert "." button to "," if decimal operator is set
+   to comma by locale settings.
+
+v1.3.4
+   If compiled with -DUSE_PANGO switch grpn uses the pango font 
+   library and Liberation Mono font as default. Can be 
+   overwritten with the -fn-disp command line option. 
+   Both keys "," and "." are always treated as decimal separator 
+   whatever the locale is.
diff -Naur grpn-1.2/Makefile grpn-1.3.4/Makefile
--- grpn-1.2/Makefile	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/Makefile	2011-12-26 07:03:20.280827043 +0000
@@ -3,16 +3,11 @@
 # Please read the next few lines and enter the correct values.
 
 # where to install GRPN
-PREFIX = /usr/local/
+PREFIX = /usr/local
 
 # What compiler should be used
 CC = gcc 
 
-# Where to find the gtk-config script
-GTK_DIR =
-#GTK_DIR = /loc/libs/gtk+-1.0.6/bin/
-
-
 # NOTE:
 #
 # add -DGTK_VER_1_1 to the CFLAGS if you are using GTK version 1.1.0 or higher
@@ -20,9 +15,9 @@
 # add -DUSE_GNOME if you want to make grpn GNOME compliant.
 
 
-CFLAGS = -g -O2 -I/usr/include/X11  `$(GTK_DIR)pkg-config --cflags gtk+-2.0` -DGTK_VER_2_0 
+CFLAGS = -g -O2 -I/usr/X11/include -DUSE_PANGO `pkg-config --cflags gtk+-2.0` -DGTK_VER_1_1
 
-DFLAGS =  -L/usr/lib/X11 
+DFLAGS =  -L/usr/X11/lib 
 
 # end of user configurable section
 
@@ -35,12 +30,7 @@
 	setup_buttons.o callback_buttons.o editor.o \
 	error.o help.o mode.o undo.o
 
-
-
-LIBS   = `$(GTK_DIR)pkg-config --libs gtk+-2.0` -lX11 -lm 
-
-
-
+LIBS   = `pkg-config --libs gtk+-2.0` -lX11 -lm
 
 grpn:	$(OBJS)
 	$(CC) $(DFLAGS) -o $@ $(OBJS) $(LIBS) 
@@ -49,10 +39,10 @@
 	$(PURIFY) $(CC) $(DFLAGS) -o $@ $(OBJS) $(LIBS) 
 
 install:	grpn
-	mkdirhier $(PREFIX)/bin
+	mkdir -p $(PREFIX)/bin
 	cp grpn $(PREFIX)/bin
 	chmod 755 $(PREFIX)/bin/grpn
-	mkdirhier $(PREFIX)/man/man1
+	mkdir -p $(PREFIX)/man/man1
 	cp grpn.1 $(PREFIX)/man/man1
 	chmod 644 $(PREFIX)/man/man1/grpn.1
 
@@ -65,7 +55,7 @@
 
 
 clean:
-	rm -f core grpn *.o
+	rm -f core grpn *~ *.o
 
 include .depend
 
diff -Naur grpn-1.2/button_def.c grpn-1.3.4/button_def.c
--- grpn-1.2/button_def.c	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/button_def.c	2011-12-26 05:15:44.132996035 +0000
@@ -35,13 +35,11 @@
 extern void cmodeCmdCB(GtkWidget *, gpointer);
 extern void radixCmdCB(GtkWidget *, gpointer);
 
-
-
 FuncInfo invisible1[] = {
    { "Modulo", "mod", "Remainder of division.",
       genericButtonCB, (void *)ModStack },
-   { "Hex", "hex", "Hexidecimal display mode.",
-      baseCmdCB, (void *)HEXIDECIMAL },
+   { "Hex", "hex", "Hexadecimal display mode.",
+      baseCmdCB, (void *)HEXADECIMAL },
    { "Dec", "dec", "Decimal display mode.",
       baseCmdCB, (void *)DECIMAL },
    //do not forget to add one item in
@@ -135,8 +133,6 @@
    { "ln", "ln", "Natural log (log base e).",
       genericButtonCB, (void *)LnStack }
 };
-
-
 FuncInfo num0[] = {
    { "0", NULL, NULL, enterNumCB, (void *)'0' },
    { ".", NULL, NULL, enterNumCB, (void *)'.' },
diff -Naur grpn-1.2/callback_buttons.c grpn-1.3.4/callback_buttons.c
--- grpn-1.2/callback_buttons.c	2009-11-14 01:21:32.000000000 +0000
+++ grpn-1.3.4/callback_buttons.c	2011-05-10 17:02:19.000000000 +0000
@@ -21,14 +21,13 @@
 
 #include <stdio.h>
 #include <gtk/gtk.h>
-#include <locale.h>
-
 
 #include "buttons.h"
 #include "funcs.h"
 #include "editor.h"
 #include "error.h"
 #include "lcd.h"
+#include <locale.h>
 
 
 /* the generic button callback function */
@@ -58,18 +57,18 @@
 
    /* reset any error string */
    resetError();
-  
+
    int digit = (int)fi->data;
-   if (digit=='.') 
+   if (digit=='.')
    {
-     //is the locale decimal seperator a comma?
-     struct lconv * lc;
-     lc=localeconv();
-     if  (strcmp(lc->decimal_point,",")==0)
-       {
-          // then turn the . from the button to a ,
-          digit=',';
-       }
+      //is the locale decimal seperator a comma?
+      struct lconv * lc;
+      lc=localeconv();
+      if  (strcmp(lc->decimal_point,",")==0)
+      {
+         // then turn the . from the button to a ,
+         digit=',';
+      }
    }
 
    insertEditor(digit);
diff -Naur grpn-1.2/callback_menu.c grpn-1.3.4/callback_menu.c
--- grpn-1.2/callback_menu.c	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/callback_menu.c	2011-12-26 05:12:14.528999388 +0000
@@ -20,6 +20,7 @@
 /* callback_menu.h  by Paul Wilkins 3/15/97 */
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <gtk/gtk.h>
 
 #include "menu.h"
@@ -86,7 +87,7 @@
    /* TODO: set the toggles in the buttons */
    if(optWindow){
       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(optHexBtn), 
-	 getBaseMode() == HEXIDECIMAL ? TRUE : FALSE);
+	 getBaseMode() == HEXADECIMAL ? TRUE : FALSE);
       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(optDecBtn), 
 	 getBaseMode() == DECIMAL ? TRUE : FALSE);
       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(optDecEngBtn), 
diff -Naur grpn-1.2/complex.c grpn-1.3.4/complex.c
--- grpn-1.2/complex.c	2009-11-14 02:04:26.000000000 +0000
+++ grpn-1.3.4/complex.c	2011-05-10 16:58:46.000000000 +0000
@@ -22,6 +22,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
+#include <string.h>
 
 #include "complex.h"
 #include "real.h"
@@ -131,12 +132,13 @@
          p2 = printReal(c1->im);
       }
       freeCmplx(c1);
+      sprintf(c, "(%s< %s)", p1, p2);
    } else {
       p1 = printReal(a->re);
       p2 = printReal(a->im);
+      sprintf(c, "(%s; %s)", p1, p2);
    }
 
-   sprintf(c, "(%s; %s)", p1, p2);
    free(p1);
    free(p2);
 
@@ -163,12 +165,13 @@
          p2 = printReal(c1->im);
       }
       freeCmplx(c1);
+      sprintf(c, "(%s< %s)", p1, p2);
    } else {
       p1 = printReal(a->re);
       p2 = printReal(a->im);
+      sprintf(c, "(%s; %s)", p1, p2);
    }
 
-   sprintf(c, "(%s; %s)", p1, p2);
 
    if(strlen(p1)+strlen(p2)+4 > lcdWidth-4) *(c+strlen(p1)+2) = '\n';
    free(p1);
diff -Naur grpn-1.2/debian/changelog grpn-1.3.4/debian/changelog
--- grpn-1.2/debian/changelog	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/debian/changelog	2011-12-26 06:38:31.716865532 +0000
@@ -0,0 +1,124 @@
+grpn (1.3.4-1) unstable; urgency=low
+
+  *  If compiled with -DUSE_PANGO switch grpn uses the pango font 
+     library and the Liberation Mono font as default. Can be 
+     overwritten with the -fn-disp command line option. 
+     Thanks to Jean-Pierre Demailly for implementing this new
+     feature.
+     Both keys "," and "." are always treated as decimal separator 
+     whatever the locale is.
+
+ -- Jens Getreu  <getreu@web.de>  Fri, 15 Dec 2011 19:05:33 +0200
+
+grpn (1.3.3-1) unstable; urgency=low
+
+  *  Bugfix: Convert "." button to "," if decimal operator is set
+     to comma by locale settings.
+
+ -- Jens Getreu  <getreu@web.de>  Fri, 6 May 2011 19:05:33 +0200
+
+grpn (1.3.2-1) unstable; urgency=low
+  *  Cntr-c copies the bottom of the stack to the Gnome-clipboard.
+     (Cntr-v not implemented yet).
+     Complex numbers are displayed with ";" instead of ",".
+     "," is decimal separator in some locales.
+
+ -- Jens Getreu  <getreu@web.de>  Fri, 6 May 2011 19:05:33 +0200
+
+grpn (1.3.1-1) unstable; urgency=low
+
+  * Basemode defaults now to dec like the original version 1.1.2.
+    A new command line option -bm dec|eng|bin|oct|hex allows to
+    change the default value for basemode.
+
+ -- Jens Getreu  <getreu@web.de>  Fri, 29 Apr 2011 12:01:19 +0200
+
+grpn (1.3.0-1) unstable; urgency=low
+
+  * Merge of debian patches grpn-1.1.2-3
+    and sources grpn-1.7.4.1 (getreu.net) and
+    including the following enhancements:
+    + Introduced DECIMAL_ENG mode for engineer notation.
+    + The complex function can now not only create complex numbers
+      but also decompose them.
+    + new function "mod"=remainder introduced.
+
+ -- Jens Getreu  <getreu@web.de>  Wed, 27 Apr 2011 20:19:22 +0200
+
+grpn (1.1.2-3) unstable; urgency=low
+
+  * "Thank you, Barry" release
+  * Changes by Barry deFreese <bdefreese@debian.org>:
+  * Build with Gtk2. (Closes: #515316).
+    + Change libgtk1.2-dev build-dep to libgtk2.0-dev.
+    + 03_gtk2.dpatch.
+  * Added .desktop file (Closes: #375515)
+    + Thanks to Vassilis Pandis.
+  * debian/patches/02_add_includes.dpatch: add missing includes
+    + Thanks to Michael Bienia.
+  * Make clean not ignore errors.
+  * Add ${misc:Depends} for debhelper package.
+  * Quote strings in menu file.
+  * Add appropriate copyright holder to debian/copyright.
+  * Version path to GPL license. (GPL-2).
+  * Bump debhelper build-dep to >= 5.
+  * Move DH_COMPAT from rules to debian/compat and set to 5.
+  * Bump Standards Version to 3.8.0.
+    + Menu policy transition.
+
+ -- Wartan Hachaturow <wart@debian.org>  Mon, 02 Mar 2009 15:22:22 +0300
+
+grpn (1.1.2-2) unstable; urgency=low
+
+  * Fixed problems with locale (Closes: #253415)
+  * Extended the description (Closes: #209527)
+
+ -- Wartan Hachaturow <wart@debian.org>  Sun, 17 Oct 2004 16:04:58 +0400
+
+grpn (1.1.2-1) unstable; urgency=low
+
+  * Adopted (Closes: #174112)
+  * New upstream version
+  * Upstream version now has its own manpage, replace the Debian one.
+  * Binaries and manual pages no more get installed in /usr/X11R6, since
+    the package doesn't use imake.
+  * Removed emacs cruft from changelog.
+  * Changed build depends to remove gnome-dev, since package gets compiled 
+    without gnome toolbar support.
+
+ -- Wartan Hachaturow <wart@debian.org>  Wed, 25 Dec 2002 11:47:07 +0300
+
+grpn (1.1.1-3) unstable; urgency=low
+
+  * Adopted (Closes: #87153)
+  * Added hint (Closes: #80029)
+  * Added a manpage
+  * Added build-depends (Closes: #84488)
+
+ -- Brian Russo <wolfie@debian.org>  Sat, 24 Feb 2001 01:44:59 -1000
+
+grpn (1.1.1-2) unstable; urgency=low
+
+  * Recompiled with latest libraries.
+  * Upgraded Standards-Version.
+
+ -- Robert S. Edmonds <edmonds@debian.org>  Mon, 16 Oct 2000 23:36:50 +0000
+
+grpn (1.1.1-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Robert S. Edmonds <stu@novare.net>  Wed,  9 Aug 2000 14:49:24 -0400
+
+grpn (1.1.0-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Robert S. Edmonds <stu@novare.net>  Sat, 12 Jun 1999 16:24:01 -0400
+
+grpn (1.0.4-1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Robert S. Edmonds <stu@novare.net>  Mon, 22 Mar 1999 19:41:45 -0500
+
diff -Naur grpn-1.2/debian/compat grpn-1.3.4/debian/compat
--- grpn-1.2/debian/compat	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/debian/compat	2011-05-10 16:58:46.000000000 +0000
@@ -0,0 +1 @@
+5
diff -Naur grpn-1.2/debian/control grpn-1.3.4/debian/control
--- grpn-1.2/debian/control	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/debian/control	2011-05-10 16:58:46.000000000 +0000
@@ -0,0 +1,16 @@
+Source: grpn
+Section: math
+Priority: extra
+Maintainer: Wartan Hachaturow <wart@debian.org>
+Build-Depends: debhelper (>= 5), dpatch, libgtk2.0-dev
+Standards-Version: 3.8.0
+
+Package: grpn
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: GTK+ reverse polish notation calculator
+ grpn is an RPN calculator which uses the GTK+ widgets. It
+ works with real and complex numbers, has 4 different radix
+ modes, supports general math functions along with logarithmic
+ and trigonometric functions.  Calculator stack is only limited
+ by free memory.
diff -Naur grpn-1.2/debian/copyright grpn-1.3.4/debian/copyright
--- grpn-1.2/debian/copyright	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/debian/copyright	2011-05-10 16:58:46.000000000 +0000
@@ -0,0 +1,14 @@
+This package was debianized by Robert S. Edmonds <edmonds@debian.org> on
+Mon, 22 Mar 1999 19:41:45 -0500.
+
+It was downloaded from:
+ftp://wilkins.ne.mediaone.net/pub/grpn-1.1.1.tar.gz
+
+Upstream Author: Paul Wilkins <paul.wilkins@analog.com>
+
+Copyright: Copyright (C) 2000,2002  Paul Wilkins <paul.wilkins@analog.com>
+
+License:
+GPL (GNU GPL license v2 included in source code)
+The GNU GPL may be viewed on Debian GNU/Linux systems in
+/usr/share/common-licenses/GPL-2
diff -Naur grpn-1.2/debian/dirs grpn-1.3.4/debian/dirs
--- grpn-1.2/debian/dirs	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/debian/dirs	2011-05-10 16:58:46.000000000 +0000
@@ -0,0 +1,2 @@
+usr/bin
+usr/share/man/man1
diff -Naur grpn-1.2/debian/docs grpn-1.3.4/debian/docs
--- grpn-1.2/debian/docs	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/debian/docs	2011-05-10 16:58:46.000000000 +0000
@@ -0,0 +1 @@
+README 
diff -Naur grpn-1.2/debian/grpn.desktop grpn-1.3.4/debian/grpn.desktop
--- grpn-1.2/debian/grpn.desktop	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/debian/grpn.desktop	2011-05-10 16:58:46.000000000 +0000
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=1.0
+Name=Grpn Calculator
+GenericName=Calculator
+Comment=A reverse polish notation calculator
+Exec=grpn
+Icon=grpn
+Type=Application
+Categories=Calculator;Utility;
diff -Naur grpn-1.2/debian/grpn.xpm grpn-1.3.4/debian/grpn.xpm
--- grpn-1.2/debian/grpn.xpm	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/debian/grpn.xpm	2011-05-10 16:58:46.000000000 +0000
@@ -0,0 +1,255 @@
+/* XPM */
+static char * icon_xpm[] = {
+"60 67 185 2",
+"  	c None",
+". 	c #FFFFFF",
+"+ 	c #FDFDFD",
+"@ 	c #F9F9F9",
+"# 	c #D3D3D3",
+"$ 	c #767676",
+"% 	c #777777",
+"& 	c #D9D9D9",
+"* 	c #B2B2B2",
+"= 	c #111111",
+"- 	c #131313",
+"; 	c #BDBDBD",
+"> 	c #E2E2E2",
+", 	c #858585",
+"' 	c #0C0C0C",
+") 	c #121212",
+"! 	c #FEFEFE",
+"~ 	c #939393",
+"{ 	c #0F0F0F",
+"] 	c #010101",
+"^ 	c #F5F5F5",
+"/ 	c #898989",
+"( 	c #7C7C7C",
+"_ 	c #F6F6F6",
+": 	c #585858",
+"< 	c #AFAFAF",
+"[ 	c #101010",
+"} 	c #B8B8B8",
+"| 	c #747474",
+"1 	c #A6A6A6",
+"2 	c #B0B0B0",
+"3 	c #E3E3E3",
+"4 	c #4A4A4A",
+"5 	c #B1B1B1",
+"6 	c #FAFAFA",
+"7 	c #D2D2D2",
+"8 	c #4F4F4F",
+"9 	c #D6D6D6",
+"0 	c #5C5C5C",
+"a 	c #A9A9A9",
+"b 	c #EDEDED",
+"c 	c #CBCBCB",
+"d 	c #383838",
+"e 	c #C6C6C6",
+"f 	c #878787",
+"g 	c #8B8B8B",
+"h 	c #E1E1E1",
+"i 	c #A1A1A1",
+"j 	c #404040",
+"k 	c #E8E8E8",
+"l 	c #959595",
+"m 	c #5E5E5E",
+"n 	c #EAEAEA",
+"o 	c #FCFCFC",
+"p 	c #8E8E8E",
+"q 	c #6B6B6B",
+"r 	c #DADADA",
+"s 	c #FBFBFB",
+"t 	c #606060",
+"u 	c #F2F2F2",
+"v 	c #AEAEAE",
+"w 	c #B9B9B9",
+"x 	c #F7F7F7",
+"y 	c #999999",
+"z 	c #353535",
+"A 	c #2B2B2B",
+"B 	c #6C6C6C",
+"C 	c #6F6F6F",
+"D 	c #4D4D4D",
+"E 	c #070707",
+"F 	c #080808",
+"G 	c #525252",
+"H 	c #ACACAC",
+"I 	c #949494",
+"J 	c #666666",
+"K 	c #676767",
+"L 	c #474747",
+"M 	c #4C4C4C",
+"N 	c #F8F8F8",
+"O 	c #ADADAD",
+"P 	c #BBBBBB",
+"Q 	c #A8A8A8",
+"R 	c #7B7B7B",
+"S 	c #555555",
+"T 	c #090909",
+"U 	c #5B5B5B",
+"V 	c #919191",
+"W 	c #575757",
+"X 	c #565656",
+"Y 	c #9E9E9E",
+"Z 	c #F4F4F4",
+"` 	c #F0F0F0",
+" .	c #BEBEBE",
+"..	c #B7B7B7",
+"+.	c #C3C3C3",
+"@.	c #282828",
+"#.	c #303030",
+"$.	c #393939",
+"%.	c #2C2C2C",
+"&.	c #D7D7D7",
+"*.	c #EEEEEE",
+"=.	c #ABABAB",
+"-.	c #2D2D2D",
+";.	c #9B9B9B",
+">.	c #232323",
+",.	c #262626",
+"'.	c #2E2E2E",
+").	c #A4A4A4",
+"!.	c #9F9F9F",
+"~.	c #C5C5C5",
+"{.	c #EBEBEB",
+"].	c #1C1C1C",
+"^.	c #BABABA",
+"/.	c #ECECEC",
+"(.	c #292929",
+"_.	c #414141",
+":.	c #434343",
+"<.	c #000000",
+"[.	c #A2A2A2",
+"}.	c #272727",
+"|.	c #CACACA",
+"1.	c #202020",
+"2.	c #C8C8C8",
+"3.	c #444444",
+"4.	c #7D7D7D",
+"5.	c #737373",
+"6.	c #969696",
+"7.	c #DBDBDB",
+"8.	c #8C8C8C",
+"9.	c #DFDFDF",
+"0.	c #EFEFEF",
+"a.	c #020202",
+"b.	c #1F1F1F",
+"c.	c #979797",
+"d.	c #DDDDDD",
+"e.	c #F1F1F1",
+"f.	c #CFCFCF",
+"g.	c #CCCCCC",
+"h.	c #7E7E7E",
+"i.	c #060606",
+"j.	c #191919",
+"k.	c #D5D5D5",
+"l.	c #D8D8D8",
+"m.	c #515151",
+"n.	c #373737",
+"o.	c #343434",
+"p.	c #7A7A7A",
+"q.	c #333333",
+"r.	c #222222",
+"s.	c #151515",
+"t.	c #040404",
+"u.	c #1B1B1B",
+"v.	c #E4E4E4",
+"w.	c #2F2F2F",
+"x.	c #141414",
+"y.	c #757575",
+"z.	c #BCBCBC",
+"A.	c #050505",
+"B.	c #E0E0E0",
+"C.	c #C1C1C1",
+"D.	c #3A3A3A",
+"E.	c #030303",
+"F.	c #181818",
+"G.	c #686868",
+"H.	c #797979",
+"I.	c #F3F3F3",
+"J.	c #424242",
+"K.	c #3E3E3E",
+"L.	c #6D6D6D",
+"M.	c #656565",
+"N.	c #E6E6E6",
+"O.	c #535353",
+"P.	c #646464",
+"Q.	c #D4D4D4",
+"R.	c #848484",
+"S.	c #4B4B4B",
+"T.	c #C2C2C2",
+"U.	c #454545",
+"V.	c #C7C7C7",
+"W.	c #363636",
+"X.	c #E7E7E7",
+"Y.	c #E5E5E5",
+"Z.	c #636363",
+"`.	c #595959",
+" +	c #9A9A9A",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + @ @ + . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . # $ % & . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * = - ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > , ' ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! ~ { ] ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^ / ' ] ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @ / ( ( ' ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . _ : $ < [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^ } | 1 2 [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 1 @ 5 [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 8 5 . 5 [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 0 a b . 5 [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c d e . . 5 [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 f g h . . 5 [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i j 3 ! . . 5 [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! k l m n . . . 5 [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o p q r s . . . 5 [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @ % t u s s s s v [ ) w s + . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x y z A B C C C C D E F G C H o . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x I J J K K K K J L E F M K 1 o . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 N N N N N N N O [ ) } N s . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 [ ) ; . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! + 2 [ ) P + ! . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s Q R S F T U R * + . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 V : W X X W : Y o . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N Z Z Z Z Z Z @ . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . `  .........+._ . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ` < @.#.$.$.%.z ; &.*.. . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . _ =.$.-.=.&.&.;.>.,.'.).. . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o !.| w ~.` . . {.i ].F V o . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! ~.^.s . . . . . /.I (._.H o . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . r Y Q n . . . . . . . . . . . . . . . . . . . . . b :.<.q 6 . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . [.{ }.|.. . . . . . . . . . . . . . . . . . . . . b :.<.q 6 . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . !.E 1.2.. . . . . . . . . . . . . . . . . . . . . b 3.= ( s . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . !.E 1.2.. . . . . . . . . . . . . . . . . . . . + 3 8 4.3 ! . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . !.E 1.2.. . . . . . . . . . . . . . . . ! + + + h 5.6.7.. . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . !.E 1.2.. . . . . . . . . . . . . . . ` y ( ( ( 4.8.9.. . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . !.E 1.2.. . . . . . . . . . . . . . 0.[.(.a.a.a.b.c.2 d.. . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . e.f.g.g.c h.i.j.!.g.g.g.k.@ . . . . . . . . . l.m.n.o.o.o.-.[ [ p.h ! . . . . . . . . . . . . . . ",
+". . . . . . . . . . . +.q.r.r.r.s.] t.u.r.r.r.4 v.. . . . . . . . . N h d.d.d.d.P w.E x.y.n + . . . . . . . . . . . . . ",
+". . . . . . . . . . . z.u.F F F A.<.] i.F F F o.B.. . . . . . . . . . . . . . . _ C.D.E.F.G.0.. . . . . . . . . . . . . ",
+". . . . . . . . . . . v.[.;.;.;.t t.- H.;.;.;.O I.. . . . . . . . . . . . . . . . N 5 J.<.K.{.. . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . !.E 1.2.. . . . . . . . . . . . . . . . . . . . . . @ L.<.K.{.. . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . !.E 1.2.. . . . . . . . . . . . . . . . . . . . . . @ L.<.K.{.. . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . !.E 1.2.. . . . . . . . . . . . . . . . . . . . . . @ L.<.K.{.. . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . !.E 1.2.. . . . . . . . . . . . . . . . . . . . . ! /.M.F M /.. . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . !.E 1.2.. . . . . . . . . . . . . . . . . . . . . ` y.1.8 e 6 . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . !.F 1.2.. . . . . . . . . . . . . . . . . . . . N.p.r.O. .+ . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . +.P.| d.. . . . . . . . . . . . . . . . . . Q.i R.].S.P ! . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . o N N + . . . . . . . . . . . ! 9.T.T.T.T.C./ L U.M V.o . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o l W.z z z z f X.k n @ . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! N.f.f.f.f.f.Y.. . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . + 9.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.o . . ",
+". . _ B r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.Z.e.. . ",
+". . ^ `.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.8 0.. . ",
+". . s z. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} @ . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff -Naur grpn-1.2/debian/manpages grpn-1.3.4/debian/manpages
--- grpn-1.2/debian/manpages	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/debian/manpages	2011-05-10 16:58:46.000000000 +0000
@@ -0,0 +1 @@
+grpn.1
diff -Naur grpn-1.2/debian/menu grpn-1.3.4/debian/menu
--- grpn-1.2/debian/menu	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/debian/menu	2011-05-10 16:58:46.000000000 +0000
@@ -0,0 +1,7 @@
+?package(grpn):\
+  needs="X11"\
+  section="Applications/Science/Mathematics"\
+  title="grpn"\
+  hints="Calculators"\
+  command="/usr/bin/grpn"\
+  icon="/usr/share/pixmaps/grpn.xpm"
diff -Naur grpn-1.2/debian/rules grpn-1.3.4/debian/rules
--- grpn-1.2/debian/rules	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/debian/rules	2011-05-10 16:58:46.000000000 +0000
@@ -0,0 +1,78 @@
+#!/usr/bin/make -f
+# debian/rules for grpn, GNU Copyright 2001 Brian Russo
+# Derived from works of Craig Small, Joey Hess, and Christoph Lameter
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+PACKAGE=grpn
+
+include /usr/share/dpatch/dpatch.make
+
+build: build-stamp
+build-stamp: patch
+	dh_testdir
+	$(MAKE)
+	touch build-stamp
+
+clean: clean1 unpatch
+
+clean1:	
+	dh_testdir
+	dh_testroot
+	$(MAKE) clean
+
+	dh_clean
+
+install: install-stamp
+install-stamp: build-stamp
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+	dh_desktop -pgrpn
+	install -D -m644 debian/grpn.desktop $(CURDIR)/debian/$(PACKAGE)/usr/share/applications/grpn.desktop
+	install -o root -m 0755 $(CURDIR)/$(PACKAGE) $(CURDIR)/debian/$(PACKAGE)/usr/bin/
+	install -d debian/grpn/usr/share/pixmaps
+	cp debian/grpn.xpm debian/grpn/usr/share/pixmaps/grpn.xpm
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+	dh_installdocs
+	dh_installmenu
+	dh_installchangelogs CHANGES 
+	dh_installman
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+	dh_installdeb
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+source diff:                                                                  
+	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+
+# And now the simple things for dpatch. Here we only apply/unapply the patches.
+
+patch: patch-stamp
+
+patch-stamp:
+	dpatch apply-all
+	touch patch-stamp
+
+unpatch:
+	dpatch deapply-all
+	rm -rf patch-stamp debian/patched
+
+.PHONY: build clean binary-indep binary-arch binary patch unpatch clean1
diff -Naur grpn-1.2/funcs.c grpn-1.3.4/funcs.c
--- grpn-1.2/funcs.c	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/funcs.c	2011-12-26 05:10:37.641002062 +0000
@@ -20,7 +20,9 @@
 /* funcs.c  by Paul Wilkins */
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
+#include <locale.h>
 #include <gtk/gtk.h>
 
 #include "stack.h"
@@ -43,8 +45,11 @@
 void readLine(char *line){
    int pos;  /* the number of characters in the number */
    Number *n1;
+   struct lconv *locale;
+   
+   locale = localeconv();
 
-   if((*line != '"' && *line != '\'') && (isDigitBase(*line) || *line == '-' || *line == '+' || *line == '.')){
+   if((*line != '"' && *line != '\'') && (isDigitBase(*line) || *line == '-' || *line == '+' || *line == *(locale->decimal_point))){
 
       /* try to read in a number */
       if(NULL == (n1 = readNumber(line, &pos))){
@@ -804,7 +809,7 @@
 
 int isDigitBase(char c){
    switch(getBaseMode()){
-      case HEXIDECIMAL:
+      case HEXADECIMAL:
          return IS_HEX(c);
          break;
       case DECIMAL_ENG:
@@ -832,7 +837,7 @@
 
    /* read in the number */
    switch(getBaseMode()){
-      case HEXIDECIMAL:
+      case HEXADECIMAL:
          *nread = 0;
          /* look for "0x" */
          if(0 == strncmp(line, "0x", 2)){
@@ -855,6 +860,7 @@
 	 if(1 != sscanf(line, "%lg%n", &num, nread)){
 	    return NULL;
 	 }
+
 	 break;
       case OCTAL:
          *nread = 0;
diff -Naur grpn-1.2/grpn.1 grpn-1.3.4/grpn.1
--- grpn-1.2/grpn.1	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/grpn.1	2011-05-10 16:58:46.000000000 +0000
@@ -19,8 +19,9 @@
 grpn \- GTK+ reverse polish notation calculator
 .SH SYNOPSIS
 .B grpn
-.B " [-fn \fIfont\fR] [-btn-fn \fIfont\fR] [-disp-fn \fIfont\fR] "
-.B " [-rows \fIn\fR] [-cols \fIn\fR] [-b] "
+.B "[-fn \fIfont\fR] [-btn-fn \fIfont\fR] [-disp-fn \fIfont\fR]"
+.B "[-rows \fIn\fR] [-cols \fIn\fR] [-b]" 
+.B "[-bm \fIdec\fR|\fIeng\fR|\fIbin\fR|\fIoct\fR|\fIhex\fR]"
 .br
 .SH DESCRIPTION
 .br
@@ -39,6 +40,10 @@
 .B "  -b"
 Don't draw the buttons.
 .TP
+.B "  -bm \fIbasemode\fR"
+Start in basemode: \fIdec\fR, \fIeng\fR, \fIbin\fR, 
+\fIoct\fR, or \fIhex\fR.
+.TP
 .B "  -rows \fIn\fR"
 Display (a minimum of) n rows.
 .TP
diff -Naur grpn-1.2/help.c grpn-1.3.4/help.c
--- grpn-1.2/help.c	2009-11-14 01:28:32.000000000 +0000
+++ grpn-1.3.4/help.c	2011-12-25 21:41:56.556291761 +0000
@@ -19,23 +19,26 @@
 */
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <gtk/gtk.h>
 
 #include "help.h"
 #include "funcs.h"
 #include "buttons.h"
 #include "license.h"
+#include "version.h"
+
 
 #define ABOUT_TXT \
-"\n\
-GRPN  v1.2\n\
-\n\
-GRPN is a graphical reverse polish notation (RPN) calculator.\n\
+"GRPN is a graphical reverse polish notation (RPN) calculator.\n\
 \n\
 By: Paul Wilkins\n\
     paul.wilkins at analog com\n\
-    Changes since version 1.1.3: Jens Getreu\n\
-    getreu at web de\n\
+    Fix_locale.dpatch by Wartan Hachaturow <wart at debian.org>\n\
+    Add_includes.dpatch by Michael Bienia <geser at ubuntu.com>\n\
+    gtk2.dpatch by Barry deFreese <bdefreese at debian.org>\n\
+    Support for Pango-fonts by Jean-Pierre Demailly.\n\
+    Changes since version 1.1.2-3: Jens Getreu <getreu at web.de>\n\
 \n\
 "
 
@@ -64,6 +67,9 @@
 \n\
 The result is left on the stack.\n\
 \n\
+Cntr-c copies the result to the clipboard for use in \n\
+other applications. \n\
+\n\
 Note that GRPN uses a shorthand for all commands that causes\n\
 an automatic <enter> before executing a command.  The previous\n\
 example could then be done as:\n\
@@ -137,7 +143,7 @@
       gtk_signal_connect(GTK_OBJECT(*dialog), "destroy",
                         GTK_SIGNAL_FUNC(gtk_widget_destroyed),
                         dialog);
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
       gtk_container_set_border_width(GTK_CONTAINER(*dialog), 5); 
 #else
       gtk_container_border_width(GTK_CONTAINER(*dialog), 5); 
@@ -151,7 +157,7 @@
       gtk_widget_show(vbox);
 
       scrolled_win = gtk_scrolled_window_new (NULL, NULL);
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
       gtk_container_set_border_width(GTK_CONTAINER(scrolled_win), 5); 
 #else
       gtk_container_border_width(GTK_CONTAINER(scrolled_win), 5); 
@@ -166,7 +172,7 @@
       gtk_signal_connect(GTK_OBJECT(label), "destroy",
                           GTK_SIGNAL_FUNC(gtk_widget_destroyed), &label);
       gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
       gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_win), label);
 #else
       gtk_container_add(GTK_CONTAINER(scrolled_win), label);
@@ -193,32 +199,44 @@
  
 
 void license_popup(){
-   static GtkWidget *dialog = NULL;
+   int i;
+   char *htxt;
+   static GtkWidget *licenseDialog = NULL;
  
-   popup_window(&dialog, LICENSE_TXT, "License");
+   if(NULL == (htxt = (char*)malloc((10000)*sizeof(char)))){
+      perror("license_popup: malloc");
+      return;
+   } else {
+      strcpy(htxt, LICENSE_TXT);
+      //popup_window wants a long text to scroll
+      for(i=0; i<60; i++){
+	       strcat(htxt, "\n");
+      }
+   }
+   popup_window(&licenseDialog, htxt, "License");
+   free(htxt);
 }
  
  
 
 void help_popup(){
- 
    int i, j, k;
    int cmds;
    int len;
    char *htxt;
    char *cmd;
-   static GtkWidget *dialog = NULL;
+   static GtkWidget *helpDialog = NULL;
 
    cmds = 0;
    for(i=0; i<NumFunctionRows; i++){
       cmds += rowinf[i].numBtns;
    }
-   if(NULL == (htxt = (char*)malloc((3000+cmds*60)*sizeof(char)))){
+   if(NULL == (htxt = (char*)malloc((10000+cmds*60)*sizeof(char)))){
       perror("help_popup: malloc");
       return;
    } else {
       strcpy(htxt, HELP_TXT);
-      /* append the list of commands to the help text */
+      // append the list of commands to the help text 
       for(i=0; i<NumFunctionRows; i++){
 	 for(j=0; j<rowinf[i].numBtns; j++){
 	    cmd = rowinf[i].fi[j].cmd;
@@ -233,14 +251,29 @@
       }
    }
 
-   popup_window(&dialog, htxt, "Help");
+   popup_window(&helpDialog, htxt, "Help");
 
    free(htxt);
+
 }
 
 void about_popup(){
-   static GtkWidget *dialog = NULL;
+   int i;
+   char *htxt;
+   static GtkWidget *aboutDialog = NULL;
  
-   popup_window(&dialog, ABOUT_TXT, "About");
+   if(NULL == (htxt = (char*)malloc((10000)*sizeof(char)))){
+      perror("about_popup: malloc");
+      return;
+   } else {
+      strcpy(htxt, GRPN_VERSION);
+      strcat(htxt, ABOUT_TXT);
+      //popup_window wants a long text to scroll
+      for(i=0; i<60; i++){
+	       strcat(htxt, "\n");
+      }
+   }
+   popup_window(&aboutDialog, htxt, "About");
+   free(htxt);
 }
 
diff -Naur grpn-1.2/lcd.c grpn-1.3.4/lcd.c
--- grpn-1.2/lcd.c	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/lcd.c	2011-12-25 21:03:50.528350965 +0000
@@ -20,7 +20,10 @@
 /* lcd.c   by Paul Wilkins 3/22/97 */
 
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include <gtk/gtk.h>
+#include <gdk/gdk.h>
 #include <gdk/gdkkeysyms.h>
 
 #include "lcd.h"
@@ -32,14 +35,6 @@
 #include "error.h"
 #include "undo.h"
 
-#define FONT1 "12x24"
-#define FONT2 "-*-courier-medium-r-*-*-24-*"
-#define FONT3 "-misc-fixed-medium-r-normal-*-20-*"
-#define FONT4 "10x20"
-#define FONT5 "-*-courier-medium-r-*-*-12-*"
-#define FONT6 "fixed"
-
-
 /* the amount of spacing we want around the display */
 #define BORDER 2 
 
@@ -55,16 +50,35 @@
 int hiY0, hiX2, hiY2;
 
 /* font stuff */
-GdkFont *lcdFont;
-int fontW = 0;
-int fontH = 0;
-int fontD = 0;
+#ifdef USE_PANGO
+   PangoLayout *pango_layout;
+   PangoFontDescription *pango_desc;
+   PangoFontMetrics *pango_metrics;
+   PangoFontMap *pango_fontmap;
+   PangoContext *pango_context;
+   PangoFont *pango_font;
+   PangoFontMetrics *pango_metrics;
+   #define SHIFT 3
+#else
+   GdkFont *lcdFont;
+   #define SHIFT -1
+   #define FONT1 "12x24"
+   #define FONT2 "-*-courier-medium-r-*-*-24-*"
+   #define FONT3 "-misc-fixed-medium-r-normal-*-20-*"
+   #define FONT4 "10x20"
+   #define FONT5 "-*-courier-medium-r-*-*-12-*"
+   #define FONT6 "fixed"
+#endif
+
+int fontW;
+int fontH;
+int fontD;
 
 int lcdWidth = 0;
 int lcdHeight = 0;
 int lcdDisplayMode = LONG_DISPLAY;
 
-int lcdInitalized = 0;
+int lcdInitialized = 0;
 
 /* some callbacks */
 static gint lcdExposeCB(GtkWidget *widget, GdkEventExpose *event);
@@ -87,7 +101,7 @@
 
 void lcdPasteCB(GtkWidget *, GtkSelectionData *, gpointer);
 gint loseSelection(GtkWidget *, GdkEventSelection *);
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
 void convertSelection(GtkWidget *, GtkSelectionData *,
    guint, guint, gpointer);
 #else
@@ -109,7 +123,7 @@
    int i;
    int width;
    int wid, hgt;
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
    static GtkTargetEntry targetlist[] = {
      /* Target          Flags  Info      */
      { "STRING",        0,     TARGET_STRING },
@@ -123,6 +137,26 @@
    lcdWidth = cols;
    lcdHeight = rows;
 
+#ifdef USE_PANGO
+   lcdDA = gtk_drawing_area_new();
+   pango_layout = gtk_widget_create_pango_layout(lcdDA, NULL);
+   pango_desc = pango_font_description_from_string(font?font:"Liberation Mono 16");
+   pango_fontmap = pango_cairo_font_map_get_default();
+   pango_context = pango_cairo_font_map_create_context( (PangoCairoFontMap *)pango_fontmap );
+   pango_font = pango_context_load_font(pango_context, pango_desc);
+   pango_metrics =
+      pango_context_get_metrics(pango_context, pango_desc, pango_language_get_default());
+
+   fontW = (pango_font_metrics_get_approximate_digit_width(pango_metrics))/PANGO_SCALE;
+   fontH = (pango_font_metrics_get_ascent(pango_metrics) + pango_font_metrics_get_descent(pango_metrics))/PANGO_SCALE;
+   fontD = pango_font_metrics_get_descent(pango_metrics)/PANGO_SCALE;
+
+   gtk_widget_modify_font(lcdDA, pango_desc);
+#else
+   fontW = 0;
+   fontH = 0;
+   fontD = 0;
+
    /* get a font for the main window */
    if(font != NULL){
       if(NULL == (lcdFont = gdk_font_load(font))){
@@ -149,6 +183,7 @@
    /* globals we use all over the place */
    fontH = lcdFont->ascent + lcdFont->descent;
    fontD = lcdFont->descent;
+#endif
 
    if(fontW == 0 || fontH == 0){
       fprintf(stderr, "Error: can not determine font dimentions.\n");
@@ -158,10 +193,12 @@
    wid = (2 * BORDER) + (lcdWidth * fontW);
    hgt = (2 * BORDER) + (lcdHeight * fontH);
 
+#ifndef USE_PANGO
    lcdDA = gtk_drawing_area_new();
+#endif
+
    gtk_drawing_area_size(GTK_DRAWING_AREA(lcdDA), wid, hgt);
    gtk_box_pack_start(GTK_BOX(parent), lcdDA, TRUE, TRUE, 0);
-   gtk_widget_show(lcdDA);
 
    /* Signals used to handle window ops */
    gtk_signal_connect(GTK_OBJECT(lcdDA), "expose_event",
@@ -178,7 +215,7 @@
    gtk_signal_connect(GTK_OBJECT(lcdDA), "selection_request_event",
                      (GtkSignalFunc)convertSelection, NULL);
    */
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
    gtk_selection_add_targets(lcdDA,
       GDK_SELECTION_PRIMARY, targetlist, ntargets);
 
@@ -209,6 +246,7 @@
       GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK);
 
    GTK_WIDGET_SET_FLAGS(lcdDA, GTK_CAN_FOCUS);
+   gtk_widget_show(lcdDA);
    gtk_widget_grab_focus(lcdDA);
 
 
@@ -367,6 +405,10 @@
    int curPos;
    int strt, stop;
    GdkGC *drawgc;
+#ifdef USE_PANGO
+   PangoRectangle rect;
+   int pango_pos;
+#endif
 
    /* draw the stack */
    for(i=0; i<lcdHeight; i++){
@@ -380,12 +422,24 @@
          stop = lcdWidth;
       }
       if(stop-strt){
+#ifdef USE_PANGO
+         pango_layout_index_to_pos(pango_layout, strt, &rect);
+         pango_pos = rect.x / PANGO_SCALE;
+         gdk_window_clear_area(lcdDA->window, 
+            pango_pos + BORDER, i*fontH + BORDER,
+            2*fontW*(stop-strt), fontH);
+         pango_layout_set_text(pango_layout,  &lcdText[i][strt], stop-strt);
+         gdk_draw_layout(lcdDA->window, lcdGC,
+            pango_pos + BORDER + SHIFT, i*fontH + BORDER,
+	    pango_layout);
+#else
          gdk_window_clear_area(lcdDA->window, 
             strt*fontW + BORDER, i*fontH + BORDER,
             fontW*(stop-strt), fontH);
          gdk_draw_text(lcdDA->window, lcdFont, lcdGC,
             strt*fontW + BORDER, (i+1)*fontH - fontD + BORDER,
             &lcdText[i][strt], stop-strt);
+#endif
       }
 
       /* draw the highlighted section of the line */
@@ -394,14 +448,28 @@
          if(strt > lcdWidth) strt = lcdWidth;
 	 stop = hiX2+1;
          if(stop > lcdWidth) stop = lcdWidth;
-         if(stop-strt){
-            
+         if(stop-strt){            
+#ifdef USE_PANGO
+            pango_layout_index_to_pos(pango_layout, strt, &rect);
+            pango_pos = rect.x / PANGO_SCALE;
+            gdk_window_clear_area(lcdDA->window, 
+               pango_pos + BORDER, i*fontH + BORDER,
+               2*fontW*(stop-strt), fontH);
+            gdk_draw_rectangle(lcdDA->window, lcdGC, TRUE,
+               pango_pos + BORDER + SHIFT, i*fontH + BORDER,
+               fontW*(stop-strt), fontH);
+            pango_layout_set_text(pango_layout,  &lcdText[i][strt], stop-strt);
+            gdk_draw_layout(lcdDA->window, lcdHighlightGC,
+               strt*fontW + BORDER + SHIFT, i*fontH + BORDER,
+	       pango_layout);
+#else
             gdk_draw_rectangle(lcdDA->window, lcdGC, TRUE,
                strt*fontW + BORDER, i*fontH + BORDER,
                fontW*(stop-strt), fontH);
 	    gdk_draw_text(lcdDA->window, lcdFont, lcdHighlightGC,
 	       strt*fontW + BORDER, (i+1)*fontH - fontD + BORDER,
 	       &lcdText[i][strt], stop-strt);
+#endif
          }
       }
 
@@ -414,12 +482,24 @@
          strt = lcdWidth;
       }
       if(stop-strt){
+#ifdef USE_PANGO
+         pango_layout_index_to_pos(pango_layout, strt, &rect);
+         pango_pos = rect.x / PANGO_SCALE;
+         gdk_window_clear_area(lcdDA->window, 
+            pango_pos + BORDER, i*fontH + BORDER,
+            2*fontW*(stop-strt), fontH);
+         pango_layout_set_text(pango_layout,  &lcdText[i][strt], stop-strt);
+         gdk_draw_layout(lcdDA->window, lcdGC,
+            pango_pos + BORDER + SHIFT, i*fontH + BORDER,
+	    pango_layout);
+#else
 	 gdk_window_clear_area(lcdDA->window, 
 	    strt*fontW + BORDER, i*fontH + BORDER,
 	    fontW*(stop-strt), fontH);
-	 gdk_draw_text(lcdDA->window, lcdFont, lcdGC,
-	    strt*fontW + BORDER, (i+1)*fontH - fontD + BORDER,
-	    &lcdText[i][strt], stop-strt);
+         gdk_draw_text(lcdDA->window, lcdFont, lcdGC,
+            strt*fontW + BORDER, (i+1)*fontH - fontD + BORDER,
+            &lcdText[i][strt], stop-strt);
+#endif
       }
    }
 
@@ -445,16 +525,35 @@
          0==hiX1 && lcdHeight-1>=hiY1 && lcdHeight-1<=hiY2))
       {
          gdk_draw_line(lcdDA->window, lcdHighlightGC,
-            BORDER - 1, (lcdHeight-1) * fontH + BORDER,
-            BORDER - 1, lcdHeight * fontH - 1 + BORDER);
+            BORDER + SHIFT, (lcdHeight-1) * fontH + BORDER,
+            BORDER + SHIFT, lcdHeight * fontH - 1 + BORDER);
       }
 
       /* draw the cursor */
+#ifdef USE_PANGO
+      pango_layout_index_to_pos(pango_layout, curPos, &rect);
+      pango_pos = rect.x / PANGO_SCALE + SHIFT + BORDER;
       gdk_draw_line(lcdDA->window, drawgc,
-         fontW * curPos - 1 + BORDER, (lcdHeight-1) * fontH + BORDER,
-         fontW * curPos - 1 + BORDER, lcdHeight * fontH - 1 + BORDER);
-
+         pango_pos, (lcdHeight-1) * fontH + BORDER,
+         pango_pos, lcdHeight * fontH - 1 + BORDER);
+      /* Flush GDK display, seems to be needed in certain environments */
+      gdk_flush();
+   } else {
+      pango_layout_index_to_pos(pango_layout, strt, &rect);
+      pango_pos = rect.x / PANGO_SCALE + SHIFT + BORDER;
+      if (pango_pos > lcdDA->allocation.width - BORDER && lcdWidth > 6) {
+	 lcdWidth -= 1;
+         clearLCDwindow();
+         calcStackLCD();
+         drawStackLCD();
+      }
    }
+#else
+      gdk_draw_line(lcdDA->window, drawgc,
+         fontW * curPos + SHIFT + BORDER, (lcdHeight-1) * fontH + BORDER,
+         fontW * curPos + SHIFT + BORDER, lcdHeight * fontH - 1 + BORDER);
+   }
+#endif
 }
 
 
@@ -476,10 +575,10 @@
    width = lcdDA->allocation.width;
    height = lcdDA->allocation.height;
 
-   lcdWidth = (width - 2*BORDER) / fontW;
+   lcdWidth = (width - 2 * BORDER) / fontW;
    if(lcdWidth < 0) lcdWidth = 0;
 
-   lcdHeight = (height - 2*BORDER) / fontH;
+   lcdHeight = (height - 2 * BORDER) / fontH;
    if(lcdHeight < 0) lcdHeight = 0;
  
    /* free the old mem */
@@ -527,7 +626,7 @@
 static gint lcdExposeCB(GtkWidget *widget, GdkEventExpose *event){
    GtkStyle *style;
 
-   if(lcdInitalized == 0){
+   if(lcdInitialized == 0){
 
       style = gtk_widget_get_style(widget);
 
@@ -537,7 +636,7 @@
       lcdHighlightGC = style->bg_gc[GTK_STATE_NORMAL];
 
       lcdResize();
-      lcdInitalized = 1;
+      lcdInitialized = 1;
 
    }
 
@@ -551,7 +650,7 @@
 
 static gint lcdResizeCB(GtkWidget *widget, GdkEventConfigure *event){
 
-   if(lcdInitalized != 0) lcdResize();
+   if(lcdInitialized != 0) lcdResize();
 
    return TRUE;
 }
@@ -631,7 +730,7 @@
 
 }
 
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
 void convertSelection(
    GtkWidget *widget,
    GtkSelectionData *selection,
@@ -672,12 +771,12 @@
       }
       str[len-1] = '\0';
 
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
       switch(info){
 #else
       switch(selection->target){
 #endif
-         //case GDK_TARGET_STRING:
+/*         case GDK_TARGET_STRING: */
          case TARGET_STRING:
 	    gtk_selection_data_set(
 	       selection,
diff -Naur grpn-1.2/main.c grpn-1.3.4/main.c
--- grpn-1.2/main.c	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/main.c	2011-12-26 05:25:14.504979687 +0000
@@ -23,6 +23,8 @@
  */
 
 #include <stdio.h>
+#include <stdlib.h>
+#include <locale.h>
 #ifdef USE_GNOME
 #include <gnome.h>
 #endif
@@ -39,7 +41,7 @@
 
 void usage(char *str){
    fprintf(stderr, "Error: %s\n", str);
-   fprintf(stderr, "Usage: grpn [-fn font] [-btn-fn font] [-disp-fn font]\n");
+   fprintf(stderr, "Usage: grpn [-fn font] [-btn-fn font] [-disp-fn font] [-bm basemode]\n");
    fprintf(stderr, "            [-rows n] [-cols n] [-b]\n");
    fprintf(stderr, "   -b:        Don't draw the buttons.\n");
    fprintf(stderr, "   -rows:     Display (a minimum of) \"n\" rows.\n");
@@ -47,6 +49,7 @@
    fprintf(stderr, "   -btn-fn:   Use \"font\" for the buttons and menu-bar.\n");
    fprintf(stderr, "   -disp-fn:  Use \"font\" for the main display.\n");
    fprintf(stderr, "   -fn:       Specifies both -btn-fn and -disp-fn.\n");
+   fprintf(stderr, "   -bm:        basemode: dec, eng, bin, oct or hex.\n");
 }
 
    GtkWidget *main_w;
@@ -69,6 +72,7 @@
    GnomeAppBar *appbar;
 #endif
 
+   setlocale(LC_ALL, "C");
 #ifdef USE_GNOME
    gnome_init("grpn", "1.0", argc, argv);
    gnome_app_new("grpn", "grpn");
@@ -129,6 +133,26 @@
          }
       } else if(0 == strcmp("-b", argv[n])){
          drawButtons = 0;
+      } else if(0 == strcmp("-bm", argv[n])){
+         n++;
+         if(n >= argc){
+            usage("Missing required argument for -m.");
+            exit(0);
+         }
+         if (0 == strcmp("dec", argv[n])){
+             setBaseMode(DECIMAL);
+	 } else if (0 == strcmp("eng", argv[n])){
+             setBaseMode(DECIMAL_ENG);
+	 } else if (0 == strcmp("bin", argv[n])){
+             setBaseMode(BINARY);
+	 } else if (0 == strcmp("oct", argv[n])){
+             setBaseMode(OCTAL);
+	 } else if (0 == strcmp("hex", argv[n])){
+             setBaseMode(HEXADECIMAL);
+	 } else {
+             usage("Specify dec, eng, bin, oct or hex for -m.");
+             exit(0);
+         }
       } else {
          usage("Unknown Argument.");
          exit(0);
@@ -156,8 +180,9 @@
          exit(0);
       }
       new_style = gtk_style_copy(default_style);
-      //new_style->font = new_font;
-      //gtk_widget_set_default_style(new_style);
+      new_style->font_desc = new_font;
+/* BDD - No longer in Gtk2.x */
+/*      gtk_widget_set_default_style(new_style); */
    }
    
 
diff -Naur grpn-1.2/mode.c grpn-1.3.4/mode.c
--- grpn-1.2/mode.c	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/mode.c	2011-12-26 05:09:12.085004213 +0000
@@ -20,6 +20,7 @@
 /* setup mode.c  by Paul Wilkins  2/8/98 */
 
 #include <stdio.h>
+#include <string.h>
 #include <gtk/gtk.h>
 
 #include "mode.h"
@@ -30,7 +31,7 @@
 
 int radixMode = RADIANS;
 int polarMode = RECTANGULAR;
-int baseMode = DECIMAL_ENG;
+int baseMode = DECIMAL;
 
 int getRadixMode(){
    return radixMode;
@@ -101,8 +102,8 @@
       case DECIMAL_ENG:
          strcat(buf, "Decimal-Eng");
          break;
-      case HEXIDECIMAL:
-         strcat(buf, "Hexidecimal");
+      case HEXADECIMAL:
+         strcat(buf, "Hexadecimal");
          break;
       default:
          fprintf(stderr, "invalid Base mode\n");
diff -Naur grpn-1.2/mode.h grpn-1.3.4/mode.h
--- grpn-1.2/mode.h	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/mode.h	2011-12-26 05:15:31.056994505 +0000
@@ -27,7 +27,7 @@
 #define BINARY      0x1
 #define OCTAL       0x2
 #define DECIMAL     0x4
-#define HEXIDECIMAL 0x8
+#define HEXADECIMAL 0x8
 
 #define DEGREES 0x10
 #define RADIANS 0x20
diff -Naur grpn-1.2/options.c grpn-1.3.4/options.c
--- grpn-1.2/options.c	2009-11-14 01:28:13.000000000 +0000
+++ grpn-1.3.4/options.c	2011-12-26 05:11:55.896999860 +0000
@@ -55,7 +55,7 @@
       gtk_signal_connect(GTK_OBJECT(optWindow), "destroy",
 			GTK_SIGNAL_FUNC(gtk_widget_destroyed),
 			&optWindow);
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
       gtk_container_set_border_width(GTK_CONTAINER(optWindow), 5);
 #else
       gtk_container_border_width(GTK_CONTAINER(optWindow), 5);
@@ -69,7 +69,7 @@
       /************************************************************/
       frame = gtk_frame_new("Base");
       gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
       gtk_container_set_border_width(GTK_CONTAINER(frame), 5);
 #else
       gtk_container_border_width(GTK_CONTAINER(frame), 5);
@@ -119,15 +119,15 @@
 	 button = gtk_radio_button_new_with_label(group, "Hex");
 	 gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
          gtk_signal_connect(GTK_OBJECT(button), "toggled",
-                                   GTK_SIGNAL_FUNC(baseToggleCB), (gpointer)HEXIDECIMAL);
-	 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), getBaseMode() == HEXIDECIMAL ? TRUE : FALSE);
+                                   GTK_SIGNAL_FUNC(baseToggleCB), (gpointer)HEXADECIMAL);
+	 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), getBaseMode() == HEXADECIMAL ? TRUE : FALSE);
 	 gtk_widget_show(button);
          optHexBtn = button;
 
       /************************************************************/
       frame = gtk_frame_new("Radix");
       gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
       gtk_container_set_border_width(GTK_CONTAINER(frame), 5);
 #else
       gtk_container_border_width(GTK_CONTAINER(frame), 5);
@@ -157,7 +157,7 @@
       /************************************************************/
       frame = gtk_frame_new("Coordinate Mode");
       gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
       gtk_container_set_border_width(GTK_CONTAINER(frame), 5);
 #else
       gtk_container_border_width(GTK_CONTAINER(frame), 5);
@@ -187,7 +187,7 @@
       /************************************************************/
       frame = gtk_frame_new("Display Mode");
       gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
-#ifdef GTK_VER_2_0
+#ifdef GTK_VER_1_1
       gtk_container_set_border_width(GTK_CONTAINER(frame), 5);
 #else
       gtk_container_border_width(GTK_CONTAINER(frame), 5);
diff -Naur grpn-1.2/process_input.c grpn-1.3.4/process_input.c
--- grpn-1.2/process_input.c	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/process_input.c	2011-12-26 06:33:08.712873902 +0000
@@ -20,6 +20,7 @@
 /* process_input.c  by Paul Wilkins 3/21/97 */
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 
@@ -28,6 +29,8 @@
 #include "lcd.h"
 #include "editor.h"
 #include "error.h"
+#include "number.h"
+#include <locale.h>
 
 
 
@@ -35,6 +38,12 @@
    int keysym;
    char c;
 
+   gchar* cliptext; 
+   GtkClipboard* clipboard;
+   Number *num;
+   
+
+
    if(ksym == 0){
       switch(chr){
          case ' ':
@@ -67,9 +76,14 @@
 
    if(isCtrl){
       switch(keysym){
-         case GDK_c:
-            /* quit */
-            exit(0);
+         case GDK_c:      /*copy to clipboard*/
+                if(NULL == (num = getStackEle(0))) break;
+                if(NULL == (cliptext = printNumber(num))) break;
+
+             	clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
+             	gtk_clipboard_set_text (clipboard, cliptext, -1);
+             	gtk_clipboard_store(clipboard);
+                free(cliptext);
             break;
       }
 
@@ -171,15 +185,29 @@
       default:  /* catch everything that's left over */
 
          /* ascii characters */
+         
+         if (bb == '.') {
+      		//is the locale decimal seperator a comma?
+      		struct lconv * lc;
+      		lc=localeconv();
+      		if  (strcmp(lc->decimal_point,",")==0)
+      		{
+         		// then replace . by ,
+                	bb=',';
+      		}
+         } else if (bb == ',') {
+      		//is the locale decimal seperator a comma?
+      		struct lconv * lc;
+      		lc=localeconv();
+      		if  (strcmp(lc->decimal_point,".")==0)
+      		{
+         		// then replace , by .
+                	bb='.';
+      		}
+         }
+
          if((keysym >= GDK_KP_Space && keysym <= GDK_KP_9) ||
             (keysym >= GDK_space && keysym <= GDK_asciitilde)){
-            /*
-            // interpret , as . to cope with international
-            // number keypads.
-            if (bb == ',') {
-                bb='.';
-            } 
-            */
             insertEditor(bb);
          }
 
diff -Naur grpn-1.2/real.c grpn-1.3.4/real.c
--- grpn-1.2/real.c	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/real.c	2011-12-26 05:11:20.309000678 +0000
@@ -238,7 +238,7 @@
                    };
                 }
                 break;
-            case HEXIDECIMAL:
+            case HEXADECIMAL:
                dd = a->num;
                i = 1;
                p = buf+REAL_PRINT_SIZE-1;
diff -Naur grpn-1.2/run_cmd.c grpn-1.3.4/run_cmd.c
--- grpn-1.2/run_cmd.c	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/run_cmd.c	2011-05-10 16:58:46.000000000 +0000
@@ -20,6 +20,7 @@
 /* run_cmd.c  by Paul Wilkins */
 
 #include <stdio.h>
+#include <string.h>
 #include <gtk/gtk.h>
 
 #include "buttons.h"
diff -Naur grpn-1.2/setup_menu.c grpn-1.3.4/setup_menu.c
--- grpn-1.2/setup_menu.c	2009-11-14 00:25:54.000000000 +0000
+++ grpn-1.3.4/setup_menu.c	2011-12-26 05:10:00.737003107 +0000
@@ -185,7 +185,7 @@
 	 gtk_menu_append(GTK_MENU(baseM), hexI);
 	 gtk_widget_show(hexI);
 	 gtk_signal_connect_object(GTK_OBJECT(hexI), "activate",
-				   GTK_SIGNAL_FUNC(baseCB), (gpointer)HEXIDECIMAL);
+				   GTK_SIGNAL_FUNC(baseCB), (gpointer)HEXADECIMAL);
 
       baseI = gtk_menu_item_new_with_label("Base");
       gtk_menu_append(GTK_MENU(optM), baseI);
diff -Naur grpn-1.2/test_gtk_ver.c grpn-1.3.4/test_gtk_ver.c
--- grpn-1.2/test_gtk_ver.c	2009-11-14 01:29:31.000000000 +0000
+++ grpn-1.3.4/test_gtk_ver.c	2011-05-10 16:58:46.000000000 +0000
@@ -30,11 +30,10 @@
  * GTK version == 1.0   unset GTK_VER_1_1
  * GTK version == 1.1   set GTK_VER_1_1
  * GTK version == 1.2   set GTK_VER_1_1
- * GTK version == 2.x   set GTK_VER_2_0
  */
 
-#ifdef GTK_VER_2_0  
+#ifdef GTK_VER_1_1  
 
-typedef GtkTargetEntry WRONG_VERSION_OF_GTK_PLEASE_UNSET_GTK_VER_2_0_IN_MAKEFILE;
+typedef GtkTargetEntry WRONG_VERSION_OF_GTK_PLEASE_UNSET_GTK_VER_1_1_IN_MAKEFILE;
 
 #endif
diff -Naur grpn-1.2/version.h grpn-1.3.4/version.h
--- grpn-1.2/version.h	1970-01-01 00:00:00.000000000 +0000
+++ grpn-1.3.4/version.h	2011-12-25 21:42:17.344291223 +0000
@@ -0,0 +1,31 @@
+/*
+
+Copyright (C) 2002  Paul Wilkins
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+*/
+
+#ifndef __VERSION_H
+#define __VERSION_H
+
+// used in help.c
+#define GRPN_VERSION \
+"\n\
+GRPN  1.3.4\n\
+\n\
+"
+
+#endif
