diff --git a/src/sbbs3/GNUmakefile b/src/sbbs3/GNUmakefile
index e220f15fe13de3773df49cf5707a34412c4ee1cc..4cd27ca3a9c783c9aa84ccec69833fea03fc1315 100644
--- a/src/sbbs3/GNUmakefile
+++ b/src/sbbs3/GNUmakefile
@@ -117,12 +117,18 @@ SMBLIB_OBJS = \
 
 SHLIBOPTS	:=	-shared
 ifeq ($(os),darwin)
-MKSHLIB		:=	libtool -dynamic -framework System -lcc_dynamic
-MKSHPPLIB		:=	libtool -dynamic -framework System -lcc_dynamic -lstdc++
-SHLIBOPTS	:=	
+ MKSHLIB		:=	libtool -dynamic -framework System -lcc_dynamic
+ MKSHPPLIB		:=	libtool -dynamic -framework System -lcc_dynamic -lstdc++
+ SHLIBOPTS	:=	
 else
-MKSHLIB		:=	$(CC)
-MKSHPPLIB		:=	$(CXX)
+ ifeq ($(os),sunos)
+  MKSHLIB		:=	/usr/ccs/bin/ld -G
+  MKSHPPLIB		:=	/usr/ccs/bin/ld -G -L/usr/local/lib -lstdc++
+  SHLIBOPTS	:=	
+ else
+  MKSHLIB		:=	$(CC)
+  MKSHPPLIB		:=	$(CXX)
+ endif
 endif
 
 # Monolithic Synchronet executable Build Rule