diff --git a/CMakeLists.txt b/CMakeLists.txt
index ef34705..e67feb4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -107,6 +107,44 @@
   message(STATUS "32-bit build")
 endif()
 
+# This ensures that we don't depend on libstdc++ or libgcc
+if(CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE AND NOT CYGWIN)
+  option(BUILD_STATIC
+    "Link statically against libgcc and libstdc++, if possible" OFF)
+  if(BUILD_STATIC)
+    # For some reason, simply passing ${CMAKE_CXX_FLAGS} to the compiler in
+    # execute_process() doesn't work.  Grrr...
+    if(64BIT)
+      execute_process(COMMAND ${CMAKE_CXX_COMPILER} -m64
+        --print-file-name=libstdc++.a OUTPUT_VARIABLE LIBSTDCPLUSPLUS
+        RESULT_VARIABLE RESULT)
+    else()
+      execute_process(COMMAND ${CMAKE_CXX_COMPILER} -m32
+        --print-file-name=libstdc++.a OUTPUT_VARIABLE LIBSTDCPLUSPLUS
+        RESULT_VARIABLE RESULT)
+    endif()
+    string(REGEX REPLACE "\n" "" LIBSTDCPLUSPLUS ${LIBSTDCPLUSPLUS})
+    if(RESULT MATCHES 0 AND LIBSTDCPLUSPLUS)
+      message(STATUS "Linking with static libstdc++:\n   ${LIBSTDCPLUSPLUS}")
+      file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/staticlib)
+      execute_process(COMMAND ${CMAKE_COMMAND} -E remove
+        ${CMAKE_BINARY_DIR}/staticlib/libstdc++.a)
+      execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
+        ${LIBSTDCPLUSPLUS} ${CMAKE_BINARY_DIR}/staticlib/libstdc++.a)
+      set(CMAKE_EXE_LINKER_FLAGS
+        "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_BINARY_DIR}/staticlib")
+      set(CMAKE_SHARED_LINKER_FLAGS
+        "${CMAKE_SHARED_LINKER_FLAGS} -L${CMAKE_BINARY_DIR}/staticlib")
+    else()
+      message(WARNING Cannot find static libstdc++.  VirtualGL will depend on dynamic libstdc++.)
+    endif()
+    add_definitions(-static-libgcc)
+    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc")
+    set(CMAKE_SHARED_LINKER_FLAGS
+      "${CMAKE_SHARED_LINKER_FLAGS} -static-libgcc")
+  endif()
+endif()
+
 # CMake doesn't properly support resource compilation with MinGW.  Boo!
 if(MINGW)
   if(NOT DEFINED RC)
diff --git a/unix/build-xorg b/unix/build-xorg
index ffa04e2..e71f6dd 100755
--- a/unix/build-xorg
+++ b/unix/build-xorg
@@ -116,7 +116,7 @@
 
     # Build VNC
     echo "*** Building VNC ***"
-    cmake -G"Unix Makefiles" ${1+"$@"} -DUSE_INCLUDED_ZLIB=1 $SRCDIR
+    cmake -G"Unix Makefiles" ${1+"$@"} -DUSE_INCLUDED_ZLIB=1 -DUSE_INCLUDED_FLTK=1 -DBUILD_STATIC=1 $SRCDIR
     $MAKE
 
     # Build Xorg
@@ -291,9 +291,9 @@
     if [ "$CXXFLAGS" = "" ]; then
 	CXXFLAGS=-O3
     fi
-    CFLAGS="$CFLAGS -static-libgcc -fPIC"
-    CXXFLAGS="$CXXFLAGS -static-libgcc -fPIC"
-    LDFLAGS="$LDFLAGS -static-libgcc -L`pwd`/xorg.build/syslib"
+    CFLAGS="$CFLAGS -fPIC"
+    CXXFLAGS="$CXXFLAGS -fPIC"
+    LDFLAGS="$LDFLAGS -L`pwd`/xorg.build/syslib"
     echo CC = $CC
     echo CXX = $CXX
     echo CFLAGS = $CFLAGS
@@ -302,16 +302,6 @@
     if [[ $CFLAGS = *-m32* ]]; then
 	CFGHOST="--host i686-pc-linux-gnu"
     fi
-    if [ -f ./xorg.build/syslib/libstdc++.a ]; then
-	rm -f ./xorg.build/syslib/libstdc++.a
-    fi
-    LIBSTDCPLUSPLUS=`$CC $CFLAGS -print-file-name=libstdc++.a`
-    if [ ! -f $LIBSTDCPLUSPLUS ]; then
-	echo Cannot find suitable libstdc++.a.  Aborting ...
-	exit 1
-    else
-	ln -fs $LIBSTDCPLUSPLUS ./xorg.build/syslib
-    fi
     STATICLIBS='libcrypto.a libz.a'
     for lib in $STATICLIBS; do
 	if [ -f ./xorg.build/syslib/$lib ]; then
