diff --git a/src/l3d.h b/src/l3d.h
index 4b862a5..50032d6 100644
--- a/src/l3d.h
+++ b/src/l3d.h
@@ -75,6 +75,7 @@ public:
   static SpaceStationView*  spaceStationView;
 
   static ShipCpanel*        cpan;
+  static GLUquadric*        gluQuadric;
 
 private:
   static void InitOpenGL(void);
diff --git a/src/main.cpp b/src/main.cpp
index 2ed9c84..4a0bf9b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -43,6 +43,7 @@ StarSystem*       L3D::selected_system;
 MTRand            L3D::rng;
 double            L3D::gameTime;
 float             L3D::frameTime;
+GLUquadric*       L3D::gluQuadric;
 
 void L3D::Init(IniConfig& config) {
   int width  = config.Int("ScrWidth");
@@ -104,6 +105,8 @@ void L3D::InitOpenGL() {
 
   glClearColor(0, 0, 0, 0);
   glViewport(0, 0, scrWidth, scrHeight);
+
+  gluQuadric = gluNewQuadric();
 }
 
 void L3D::Quit(void) {
@@ -234,9 +237,6 @@ void L3D::MainLoop(void) {
 
   SetView(world_view);
 
-  GLUquadric* quad = gluNewQuadric();
-  gluQuadricOrientation(quad, GLU_INSIDE);
-
   Uint32 last_stats = SDL_GetTicks();
   int frame_stat = 0;
   char fps_readout[32];
diff --git a/src/planet.cpp b/src/planet.cpp
index f547249..7d94c2b 100644
--- a/src/planet.cpp
+++ b/src/planet.cpp
@@ -1,6 +1,7 @@
 #include "libs.h"
 #include "planet.h"
 #include "frame.h"
+#include "l3d.h"
 
 Planet::Planet(StarSystem::SBody::SubType subtype) : Body() {
   m_radius  = 6378135.0;
@@ -33,10 +34,6 @@ void Planet::SetRadius(double radius) {
 }
 
 void Planet::Render(const Frame* a_camFrame) {
-  static GLUquadricObj* qobj = NULL;
-
-  if(!qobj) qobj = gluNewQuadric();
-
   glPushMatrix();
   glDisable(GL_DEPTH_TEST);
 
@@ -63,7 +60,7 @@ void Planet::Render(const Frame* a_camFrame) {
     glEnd();
     glEnable(GL_LIGHTING);
   } else {
-    gluSphere(qobj, rad, 100, 100);
+    gluSphere(L3D::gluQuadric, rad, 100, 100);
   }
   glEnable(GL_DEPTH_TEST);
   glPopMatrix();
diff --git a/src/sector_view.cpp b/src/sector_view.cpp
index fceac79..8b7c45b 100644
--- a/src/sector_view.cpp
+++ b/src/sector_view.cpp
@@ -29,21 +29,10 @@ SectorView::SectorView(void) : GenericSystemView() {
   m_zoomOutButton->SetShortcut(SDLK_F8, KMOD_NONE);
   m_rightButtonBar->Add(m_zoomOutButton, 66, 2);
 
-  GLUquadricObj* qobj = gluNewQuadric();
-
-/*
-  m_gluSphereDlist = glGenLists(1);
-  glNewList(m_gluSphereDlist, GL_COMPILE);
-  gluDisk(qobj, 0.0, 0.2, 32, 1);
-  glEndList();
-*/
-
   m_gluDiskDlist = glGenLists(1);
   glNewList(m_gluDiskDlist, GL_COMPILE);
-  gluDisk(qobj, 0.0, 0.2, 20, 1);
+  gluDisk(L3D::gluQuadric, 0.0, 0.2, 20, 1);
   glEndList();
-
-  gluDeleteQuadric(qobj);
 }
 
 SectorView::~SectorView(void) {
diff --git a/src/ship.cpp b/src/ship.cpp
index 0fcef19..7615b22 100644
--- a/src/ship.cpp
+++ b/src/ship.cpp
@@ -137,5 +137,9 @@ void Ship::Render(const Frame* camFrame) {
   strncpy(params.pText[0], GetLabel().c_str(), sizeof(params.pText));
 
   RenderSbreModel(camFrame, stype.sbreModel, &params);
+  glPushMatrix();
+  TransformToModelCoords(camFrame);
+  RenderLaserfire();
+  glPopMatrix();
 }
 
diff --git a/src/star.cpp b/src/star.cpp
index 4718ef1..87fbca2 100644
--- a/src/star.cpp
+++ b/src/star.cpp
@@ -1,5 +1,6 @@
 #include "libs.h"
 #include "star.h"
+#include "l3d.h"
 
 Star::Star(StarSystem::SBody::SubType subtype): Body() {
   m_subtype = subtype;
@@ -21,10 +22,6 @@ void Star::TransformToModelCoords(const Frame* camFrame) {
 }
 
 void Star::Render(const Frame* a_camFrame) {
-  static GLUquadricObj* qobj = NULL;
-
-  if(!qobj) qobj = gluNewQuadric();
-
   glDisable(GL_LIGHTING);
   glDisable(GL_DEPTH_TEST);
   glPushMatrix();
@@ -44,7 +41,7 @@ void Star::Render(const Frame* a_camFrame) {
   
   //TransformToModelCoords(a_camFrame);
   glColor3fv(StarSystem::starColors[m_subtype]);
-  gluSphere(qobj, rad, 100, 100);
+  gluSphere(L3D::gluQuadric, rad, 100, 100);
   glPopMatrix();
   glEnable(GL_DEPTH_TEST);
   glEnable(GL_LIGHTING);