diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 4ce1281dd225bc21abef9e4ba009ffcdd7c72230..f5a7dc60f4cf2540e755143475d7ae4ea6312fb7 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,14 @@
+2003-06-11  Scott Gilbertson  <scottg@mantatest.com>
+
+	* gnu/awt/j2d/IntegerGraphicsState.java (drawOval): implemented.
+	(fillOval): implemented
+	* gnu/awt/xlib/XGraphics.java (drawArc): implemented.
+	(fillArc): implemented.
+	* gnu/gcj/xlib/GC.java (drawArc): added native method.
+	(fillArc): added native method.
+	* gnu/gcj/xlib/natGC.cc (drawArc): added native method.
+	(fillArc): added native method.
+
 2003-06-11  Michael Koch  <konqueror@gmx.de>
 
 	* java/awt/im/InputSubset.java:
diff --git a/libjava/gnu/awt/j2d/IntegerGraphicsState.java b/libjava/gnu/awt/j2d/IntegerGraphicsState.java
index bfea6611ca56efccac03b1bd28755036d3996563..3befcb41707117571a432e9a29f6fc547a1aff7e 100644
--- a/libjava/gnu/awt/j2d/IntegerGraphicsState.java
+++ b/libjava/gnu/awt/j2d/IntegerGraphicsState.java
@@ -187,13 +187,13 @@ public class IntegerGraphicsState extends AbstractGraphicsState
   public void drawOval(int x, int y,
 		       int width, int height)
   {
-    throw new UnsupportedOperationException("not implemented yet");
+    drawArc (x, y, width, height, 0, 360);
   }
   
   public void fillOval(int x, int y,
 		       int width, int height)
   {
-    throw new UnsupportedOperationException("not implemented yet");
+    fillArc (x, y, width, height, 0, 360);
   }
 
   public void drawArc(int x, int y,
diff --git a/libjava/gnu/awt/xlib/XGraphics.java b/libjava/gnu/awt/xlib/XGraphics.java
index 47ab2b851450331734bfda812da1d278683a94fc..9f29fa5b94a4a69e8073d1135735c887ee2849e1 100644
--- a/libjava/gnu/awt/xlib/XGraphics.java
+++ b/libjava/gnu/awt/xlib/XGraphics.java
@@ -156,13 +156,13 @@ public class XGraphics implements Cloneable, DirectRasterGraphics
   public void drawArc(int x, int y, int width, int height, int
 		      startAngle, int arcAngle)
   {
-    throw new UnsupportedOperationException("not implemented");
+    context.drawArc (x, y, width, height, startAngle, arcAngle);
   }
     
   public void fillArc(int x, int y, int width, int height, int
 		      startAngle, int arcAngle)
   {
-    throw new UnsupportedOperationException("not implemented");
+    context.fillArc (x, y, width, height, startAngle, arcAngle);
   }
     
   public void drawPolyline(int[] xPoints, int[] yPoints, int
diff --git a/libjava/gnu/gcj/xlib/GC.java b/libjava/gnu/gcj/xlib/GC.java
index 2c4d8a81f6a7699e045e272da1773be1eec9af27..021f53756fbbed06efc33adf8f505cf1672007ed 100644
--- a/libjava/gnu/gcj/xlib/GC.java
+++ b/libjava/gnu/gcj/xlib/GC.java
@@ -110,6 +110,11 @@ public class GC implements Cloneable
   public native void fillRectangle(int x, int y, int w, int h);
   public native void fillPolygon(int[] xPoints, int[] yPoints, int nPoints,
 				 int translateX, int translateY);
+  
+  public native void drawArc(int x, int y, int w, int h,
+			     int startAngle, int arcAngle);
+  public native void fillArc(int x, int y, int w, int h,
+			     int startAngle, int arcAngle);
 
   /** 
    * 
diff --git a/libjava/gnu/gcj/xlib/natGC.cc b/libjava/gnu/gcj/xlib/natGC.cc
index 71f83f5dcce9c43a794bc3e7d2c99386d871abe2..fd9fca845648a2b9fc221691487442dae122fe08 100644
--- a/libjava/gnu/gcj/xlib/natGC.cc
+++ b/libjava/gnu/gcj/xlib/natGC.cc
@@ -147,6 +147,24 @@ void gnu::gcj::xlib::GC::fillRectangle(jint x, jint y, jint w, jint h)
   // no fast fail
 }
 
+void gnu::gcj::xlib::GC::drawArc(jint x, jint y, jint w, jint h,jint startAngle, jint arcAngle)
+{
+  Display* display = target->getDisplay();
+  ::Display* dpy = (::Display*) (display->display);
+  ::Drawable drawableXID = target->getXID();
+  ::GC gc = (::GC) structure;
+  XDrawArc(dpy, drawableXID, gc, x, y, w, h, startAngle * 64, arcAngle * 64);
+}
+
+void gnu::gcj::xlib::GC::fillArc(jint x, jint y, jint w, jint h,jint startAngle, jint arcAngle)
+{
+  Display* display = target->getDisplay();
+  ::Display* dpy = (::Display*) (display->display);
+  ::Drawable drawableXID = target->getXID();
+  ::GC gc = (::GC) structure;
+  XFillArc(dpy, drawableXID, gc, x, y, w, h, startAngle * 64, arcAngle * 64);
+}
+
 void gnu::gcj::xlib::GC::fillPolygon(jintArray xPoints, jintArray yPoints,
 				     jint nPoints,
 				     jint translateX, jint translateY)