diff --git a/src/GParted_Core.cc b/src/GParted_Core.cc
index a2e7557..795ad1d 100644
--- a/src/GParted_Core.cc
+++ b/src/GParted_Core.cc
@@ -995,13 +995,13 @@ void GParted_Core::set_device_partitions( Device & device )
 				break;
 		}
 
-		//Avoid reading additional file system information if there is no path
+		//Retrieve file system label
 		if ( partition_temp .get_path() != "" )
 		{
 			bool label_found = false ;
-			partition_temp .label = fs_info .get_label( partition_temp .get_path(), label_found ) ;
-			if ( ! label_found )
-				read_label( partition_temp ) ;
+			read_label( partition_temp ) ;
+			if ( partition_temp .label .empty() )
+				partition_temp .label = fs_info .get_label( partition_temp .get_path(), label_found ) ;
 
 			partition_temp .uuid = fs_info .get_uuid( partition_temp .get_path() ) ;
 		}
diff --git a/src/ext2.cc b/src/ext2.cc
index 806c731..14eba82 100644
--- a/src/ext2.cc
+++ b/src/ext2.cc
@@ -88,7 +88,7 @@ void ext2::read_label( Partition & partition )
 {
 	if ( ! Utils::execute_command( "e2label " + partition .get_path(), output, error, true ) )
 	{
-		partition .label = Utils::regexp_label( output, "^(.*)" ) ;
+		partition .label = Utils::regexp_label( output, "^(.*)$" ) ;
 	}
 	else
 	{
diff --git a/src/ext3.cc b/src/ext3.cc
index 23788a1..9331eb5 100644
--- a/src/ext3.cc
+++ b/src/ext3.cc
@@ -89,7 +89,7 @@ void ext3::read_label( Partition & partition )
 {
 	if ( ! Utils::execute_command( "e2label " + partition .get_path(), output, error, true ) )
 	{
-		partition .label = Utils::regexp_label( output, "^(.*)" ) ;
+		partition .label = Utils::regexp_label( output, "^(.*)$" ) ;
 	}
 	else
 	{
diff --git a/src/ext4.cc b/src/ext4.cc
index b837c52..f589f12 100644
--- a/src/ext4.cc
+++ b/src/ext4.cc
@@ -92,7 +92,7 @@ void ext4::read_label( Partition & partition )
 {
 	if ( ! Utils::execute_command( "e2label " + partition .get_path(), output, error, true ) )
 	{
-		partition .label = Utils::regexp_label( output, "^(.*)" ) ;
+		partition .label = Utils::regexp_label( output, "^(.*)$" ) ;
 	}
 	else
 	{
