Index: /OpenSceneGraph/trunk/include/osg/PrimitiveSet
===================================================================
--- /OpenSceneGraph/trunk/include/osg/PrimitiveSet (revision 10600)
+++ /OpenSceneGraph/trunk/include/osg/PrimitiveSet (revision 10627)
@@ -173,5 +173,9 @@
             QUADS = GL_QUADS,
             QUAD_STRIP = GL_QUAD_STRIP,
-            POLYGON = GL_POLYGON
+            POLYGON = GL_POLYGON,
+            LINES_ADJACENCY = GL_LINES_ADJACENCY_EXT, 
+            LINE_STRIP_ADJACENCY = GL_LINE_STRIP_ADJACENCY_EXT, 
+            TRIANGLES_ADJACENCY = GL_TRIANGLES_ADJACENCY_EXT, 
+            TRIANGLE_STRIP_ADJECENCY = GL_TRIANGLE_STRIP_ADJACENCY_EXT,
         };
 
Index: /OpenSceneGraph/trunk/src/osgPlugins/glsl/ReaderWriterGLSL.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/glsl/ReaderWriterGLSL.cpp (revision 9926)
+++ /OpenSceneGraph/trunk/src/osgPlugins/glsl/ReaderWriterGLSL.cpp (revision 10627)
@@ -18,4 +18,5 @@
             supportsExtension("frag","OpenGL Shader Language format");
             supportsExtension("vert","OpenGL Shader Language format");
+            supportsExtension("geom","OpenGL Shader Language format");
             supportsExtension("glsl","OpenGL Shader Language format");
         }
@@ -72,4 +73,5 @@
                     if (ext == "frag") shader->setType(osg::Shader::FRAGMENT);
                     if (ext == "vert") shader->setType(osg::Shader::VERTEX);
+                    if (ext == "geom") shader->setType(osg::Shader::GEOMETRY);
                 }
             }
Index: /OpenSceneGraph/trunk/src/osgPlugins/osg/Geometry.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/osg/Geometry.cpp (revision 9447)
+++ /OpenSceneGraph/trunk/src/osgPlugins/osg/Geometry.cpp (revision 10627)
@@ -1442,4 +1442,8 @@
     else if (strcmp(str,"QUAD_STRIP")==0)       mode = PrimitiveSet::QUAD_STRIP;
     else if (strcmp(str,"POLYGON")==0)          mode = PrimitiveSet::POLYGON;
+    else if (strcmp(str,"LINES_ADJACENCY")==0)          mode = PrimitiveSet::LINES_ADJACENCY;
+    else if (strcmp(str,"LINE_STRIP_ADJACENCY")==0)     mode = PrimitiveSet::LINE_STRIP_ADJACENCY;
+    else if (strcmp(str,"TRIANGLES_ADJACENCY")==0)      mode = PrimitiveSet::TRIANGLES_ADJACENCY;
+    else if (strcmp(str,"TRIANGLE_STRIP_ADJECENCY")==0) mode = PrimitiveSet::TRIANGLE_STRIP_ADJECENCY;
     else return false;
     return true;
@@ -1461,4 +1465,8 @@
         case (PrimitiveSet::QUAD_STRIP)        : return "QUAD_STRIP";
         case (PrimitiveSet::POLYGON)           : return "POLYGON";
+        case (PrimitiveSet::LINES_ADJACENCY)            : return "LINES_ADJACENCY";
+        case (PrimitiveSet::LINE_STRIP_ADJACENCY)       : return "LINE_STRIP_ADJACENCY";
+        case (PrimitiveSet::TRIANGLES_ADJACENCY)        : return "TRIANGLES_ADJACENCY";
+        case (PrimitiveSet::TRIANGLE_STRIP_ADJECENCY)   : return "TRIANGLE_STRIP_ADJECENCY";
         default                                : return "UnknownPrimitveType";
     }
