diff --git a/CMakeLists.txt b/CMakeLists.txt
index e73e7582b6d3aa1e3d5d8100003a515f11070f3b..620cfcf1a5e367fa4968acf165d8629ef235549b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1463,7 +1463,7 @@ endforeach(DIR)
 # static library target
 if(ENABLE_BUILD_LIB)
   add_library(lib STATIC ${GMSH_SRC})
-  set_target_properties(lib PROPERTIES OUTPUT_NAME Gmsh)
+  set_target_properties(lib PROPERTIES OUTPUT_NAME gmsh)
   if(MSVC)
     set_target_properties(lib PROPERTIES DEBUG_POSTFIX d)
     if(ENABLE_MSVC_STATIC_RUNTIME)
@@ -1495,10 +1495,10 @@ endif(ENABLE_BUILD_ANDROID)
 if(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC OR
    ENABLE_WRAP_PYTHON OR ENABLE_WRAP_JAVA)
   add_library(shared SHARED ${GMSH_SRC})
-  set_target_properties(shared PROPERTIES OUTPUT_NAME Gmsh)
+  set_target_properties(shared PROPERTIES OUTPUT_NAME gmsh)
   set_target_properties(shared PROPERTIES
     VERSION ${GMSH_MAJOR_VERSION}.${GMSH_MINOR_VERSION}.${GMSH_PATCH_VERSION}
-    SOVERSION ${GMSH_MAJOR_VERSION}.${GMSH_MINOR_VERSION})
+    SOVERSION ${GMSH_MAJOR_VERSION})
   if(HAVE_LAPACK AND LAPACK_FLAGS)
     set_target_properties(shared PROPERTIES LINK_FLAGS ${LAPACK_FLAGS})
   endif(HAVE_LAPACK AND LAPACK_FLAGS)
diff --git a/wrappers/java/CMakeLists.txt b/wrappers/java/CMakeLists.txt
index 0a12414a89554db17d27648b71fc07a3f1b741c7..37bc2ffaf473eb3dd23b17648372cbbf45d174fe 100644
--- a/wrappers/java/CMakeLists.txt
+++ b/wrappers/java/CMakeLists.txt
@@ -34,7 +34,11 @@ if(WIN32)
   set_target_properties(WrapGmsh PROPERTIES PREFIX "")
 endif(WIN32)
 if(UNIX)
-  set_target_properties(WrapGmsh PROPERTIES PREFIX "lib")
+  set_target_properties(WrapGmsh PROPERTIES
+    PREFIX "lib"
+    OUTPUT_NAME java-gmsh
+    SOVERSION "${GMSH_MAJOR_VERSION}"
+  )
 endif(UNIX)		
 add_custom_command(TARGET WrapGmsh 
 POST_BUILD # do the rest of the command after the build period